您的位置:首页 > Web前端 > JavaScript

《Effective JavaScript》​- 1.2 理解JavaScript的浮点数

2015-09-23 13:28 609 查看


      JavaScript中的所有数字都是双精度浮点数,精度为53位整数。

      这意味着即使是双精度,也只能表示一组有限的数字,而不能表示所有的实数集合,它只能够产生近似的结果,四舍五入到最接近的可表示的实数。随着舍入误差的积累,运算结果会越来越不精确。

      对于任意实数x, y, z,总满足(x + y) + z = x + (y + z)。

      然而对于浮点数来说,却不是这样,结果如下:

      (0.1 + 0.2) + 0.3; // 0.6000000000000001

      0.1 + (0.2 + 0.3); // 0.6



      一个有效的解决方法是尽可能地采用整数值运算,因为整数表示时不需要舍入,然后按比例进行转换。

      (10 + 20) + 30; // 60

      10 + (20 + 30); // 60

      当心浮点运算的精度陷阱。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 性能