js 浮点数精度问题

更新日期: 2021-09-08 阅读次数: 1881 字数: 159 分类: Javascript

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 聊聊, 查看更多联系方式