2.理解JavaScript的浮点数

2017-12-01  本文已影响0人  Somnusochi

JavaScript中所有的数字都是双精度浮点数

typeof 17; // "number"
typeof 98.6; //"number"
typeof - 2.1; //"number"

JavaScript不会直接将操作数作为浮点数进行运算,而是会将其隐式地转换为32位整数后进行计算。

8 | 1; // 9
1000 | 0001; // 1001

警惕浮点数的不精确

0.1 + 0.2; // 0.30000000000000004
(0.1 + 0.2) + 0.3; // 0.6000000000000001
0.1 + (0.2 + 0.3); // 0.6

解决方法是尽可能地采用整数值进行运算,当进行货币相关的计算时,通常会按比例转换为最小的货币单位来表示再进行计算。使用类库来进行数学计算例如decimal.js

提示

上一篇下一篇

猜你喜欢

热点阅读