200-199.1 == 0.1 ?

0.3-0.2 == 0.1 ?

工作中遇到几次这样的运算,刚开始也也以为上面的比较肯定是true,看结果

console.log(200-199.1)
0.9000000000000057
undefined
console.log(0.3-0.2)
0.09999999999999998

工作中涉及到价格的运算,如果不注意,经常会出现这些问题。

javascript采用的是IEEE-754浮点数表示法,这是一种二进制表示法,具有足够的精度。但事实是,javascript的数字不能精确的表述,常常只是真实值的一个近似表示法。

如果涉及到这些运算,尤其是价格的运算,可以先转化为分,再计算。

相关文章:

  • 2021-10-04
  • 2021-12-31
  • 2021-10-28
  • 2021-10-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-26
  • 2021-10-07
  • 2022-02-18
  • 2022-12-23
  • 2022-12-23
  • 2021-08-09
  • 2022-12-23
相关资源
相似解决方案