美文网首页
2.理解JavaScript的浮点数

2.理解JavaScript的浮点数

作者: Somnusochi | 来源:发表于2017-12-01 16:51 被阅读0次

    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

    提示

    • JavaScript的数字都是双精度的浮点数。
    • JavaScript中的整数仅仅是双精度浮点数的一个子集,而不是一个单独的数据类型。
    • 位运算符将数字视为32位的有符号整数。
    • 当心浮点运算中的精度陷阱。

    相关文章

      网友评论

          本文标题:2.理解JavaScript的浮点数

          本文链接:https://www.haomeiwen.com/subject/ejttbxtx.html