您的位置:首页 > Web前端 > JavaScript

js浮点数运算需要注意的问题

2017-07-27 19:32 225 查看
最近在js运算浮点数时发现了一个问题。问题是这样的:js函数中处理两个浮点数的相加,为了防止出现0.1+0.2=0.30000000000000004的问题,两个数都先乘以10000后再相加,得到结果后再除以10000.代码逻辑大概如下:

1 var num1 = 95.40;
2 var num2 = 279.84;
3 var amtSum = 0*1;
4
5 amtSum = amtSum + num1 *10000;
6 amtSum = amtSum + num2 *10000;
7 var tmp = (amtSum /10000)//结果是375.23999999999995


在这里并没有得到想要的375.24.

经过一番搜索后,发现是在第6行相加的时候出现了舍入误差。处理方法虽然有一些,但是并不是很好,例如将计算结果toFixed(n),n为需要的精度。但是toFixed()返回的是字符串。

推荐还是找个专门的js库来处理这个问题。
http://mathjs.org/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: