小编典典

处理JavaScript中的float精度[重复]

javascript

y在JavaScript中有大量的数值。我想通过将它们四舍五入到最接近的倍数x并将它们转换为字符串来对它们进行分组。

如何解决烦人的浮点精度?

例如:

0.2 + 0.4 = 0.6000000000000001

我尝试了两件事:

>>> y = 1.23456789 
>>> x = 0.2 
>>> parseInt(Math.round(Math.floor(y/x))) * x; 
1.2000000000000002

和:

>>> y = 1.23456789 
>>> x = 0.2 
>>> y - (y % x)
1.2000000000000002

阅读 275

收藏
2020-04-25

共1个答案

小编典典

这篇文章:如何处理JavaScript中的浮点数精度?
您有几种选择:

  • 对小数使用特殊的数据类型,例如decimal.js
  • 将结果格式化为固定数量的有效数字,如下所示: (Math.floor(y/x) * x).toFixed(2)
  • 将所有数字转换为整数
2020-04-25