繁体   English   中英

大于带数字和小数的条件

[英]greater than condition with number and decimal

我有条件检查一个数字是否大于50,000,如果是,我们会显示警告。 这样可以正常工作,但是如果你输入这个50,000.99就不会触发警报,但是51,000.00就是这样。 我如何在这里正确使用条件?

这是我的代码:

if (parseInt(newValue) > 50000.00) {
      toastr.info('Number can not be more than $50000.00');
                        // do something
                    } else {
                        // do something
                    }

不要使用parseInt来解析十进制数:

  • :(它截断你的数字
  • :(除非你指定一个基数,否则它是不可靠的
  • :(它很慢
  • :(它解析非数字字符串,如果他们以数字开头

相反,您可以使用parseFloat 可是等等:

  • :)它不会截断你的数字
  • :)没有基数问题
  • :(它很慢
  • :(它解析非数字字符串,如果他们以数字开头

有一个更好的方法: 一元+运算符

  • :)它不会截断你的数字
  • :)没有基数问题
  • :)它太快了
  • :)它不解析非完全数字字符串

但是等待:当你使用大于运算符> ,操作数会自动转换为数字(除非两者都是字符串)。

所以只需使用

newValue > 50000

不要使用parsint。 它将您的字符串/数字转换为整数,从而有效地减去小数。

如果你想要一个parseFloat ,请使用parseFloat ,而不是parseInt 整数没有分数。 实数有分数,它们在计算机程序中表示为浮点数。

使用parseFloat:

if (parseFloat(newValue) > 50000.00) {
      toastr.info('Number can not be more than $50000.00');
      // do something
 } else {
      // do something
 }

parseFloat()函数解析字符串参数并返回浮点数。

使用十进制值时,请使用parseFloat而不是parseInt。

parseInt("234")//234
parseInt("234.551")//234
parseInt(".234")//NaN

parseFloat("234")//234
parseFloat("234.551")//234.551
parseFloat(".234")//0.234

+("234")//234
+("234.551")//234.551
+(".234")//0.234

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM