为什么当休息4.677减去0.001时的结果是4.67599?

时间:2018-09-20 20:30:52

标签: node.js math

如果我在NodeJS中执行以下说明:

> 4.676 - 0.001
4.675
> 4.678 - 0.001
4.677
> 4.677 - 0.001
4.675999999999999

为什么它不像其他的那么准确?版本Node JS是8.11.1

1 个答案:

答案 0 :(得分:0)

这是大多数计算机科学中发现的四舍五入问题。

这里有2篇文章:

  1. https://floating-point-gui.de/errors/rounding/
  2. https://softwareengineering.stackexchange.com/questions/101163/what-causes-floating-point-rounding-errors

现在使用Number((4.677-0.001).toFixed(3));达到所需的精度。