大于带数字和小数的条件

greater than condition with number and decimal

本文关键字:条件 小数 数字 大于      更新时间:2023-09-26

我有一个条件,将检查数字是否大于50000,如果是,我们将显示警报。这很好,但如果你输入这个50000.99,它不会触发警报,但51000.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:

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

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

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

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