当前位置 博文首页 > 薛小科的博客:JavaScript 面试题:为什么 0.1 + 0.2 != 0.3

    薛小科的博客:JavaScript 面试题:为什么 0.1 + 0.2 != 0.3

    作者:[db:作者] 时间:2021-08-08 16:12

    灵魂两问

    1. 为什么 0.1 + 0.2 != 0.3
    2. 如何解决该问题

    1、为什么 0.1 + 0.2 != 0.3
    这是因为 JavaScript 存储数值采用的是双精度浮点数,但是 JS 采用的浮点数标准会裁剪我们的数字,这就出现了精度丢失的问题。这时:

    0.100000000000000000000002 === 0.1  // true
    
    conole.log(0.100000000000000002)  // 输入0.1  为什么输出的不是0.100000000000000002,
    这是因为二进制转换成了十进制,十进制又被转换成了字符串,这个过程中发生了取近似值的过程
    

    2、如何解决该问题

    parseFloat((0.1 + 0.2).toFixed(10)) === 0.3 //  true
    
    cs