大于带数字和小数的条件

时间:2015-03-07 00:27:00

标签: javascript

我的条件是检查数字是否大于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
                    }

5 个答案:

答案 0 :(得分:6)

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

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

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

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

有一种更好的方法:unary + operator

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

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

所以只需使用

newValue > 50000

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

使用parseFloat:

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

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

答案 4 :(得分:1)

使用十进制值时,请使用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