js 浮点数精度问题

文章目录

    js 中使用 float 浮点数类型,会发现运算时结果表示出人意料

    问题现象

    2.4 - 2.25
    > 0.1499999999999999
    
    0.1 + 0.2
    > 0.30000000000000004
    

    看来这是一个经典的问题。

    解决方法一

    转换成整数进行计算

    (2.4 * 100 - 2.25 * 100) / 100
    > 0.15
    

    解决方法二

    如果计算不求精确,四舍五入即可

    (0.1 + 0.2).toFixed(2)
    > "0.30"
    

    方案一的漏洞

    2.3 * 100
    > 229.99999999999997
    
    2.3 * 10
    > 23
    
    parseInt((2.3 * 100).toFixed(0))
    > 230
    

    2.3 乘以 100 会颠覆你的认知,所以四舍五入是最保险的做法。

    参考

    https://blog.csdn.net/daguanjia11/article/details/48650711

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式