“浮点算术”在JavaScript中是否100%准确?

在JavaScript中,浮点算术并不总是100%准确。假设取1/3,即0.33333 .....,这里的值0.333 ....将在未知点处取整。因此,如果我们将其添加为另一个也是十进制值的值,则不会获得预期的结果。因此我们可以得出结论,当添加两个小数时,将存在舍入误差,但是幸运的是,这些误差非常小,因此实际的代码结果将不会受到影响。

在以下示例中,当0.3与0.6相加时,结果必须为0.9,但是由于存在舍入误差 ,结果值不是输出中所示的预期值。

示例

<html>
<body>
   <p id="F-P-A"></p>
   <script>
      var err = 0.3 + 0.6;
         document.getElementById("F-P-A").innerHTML = "0.3 + 0.6 = " + err;
   </script>
</body>
</html>

输出结果

0.3 + 0.6 = 0.8999999999999999


在下面的示例中,当将0.2和0.1相加时,预期结果为0.3,但由于 舍入误差,预期值不是结果值。

示例

<html>
<body>
   <p id="F-P-A"></p>
   <script>
      var err = 0.2 + 0.1;
      document.getElementById("F-P-A").innerHTML = "0.2 + 0.1 = " + err;
   </script>
</body>
</html>

输出结果

0.2 + 0.1 = 0.30000000000000004