解决js加减计算精度误差的问题

最近在做一个记账小程序的时候发现js的加减算法会有误差,例如
console.log(0.1+0.2);
console.log(6.8-0.9);
0.30000000000000004 
5.8999999999999995
在浮点数计算的时候,很多时候产生的都是这种极限数据,如果要精确进行整数转换,要放大的倍数过大
下面是解决的方法:
//消除js计算误差add、reduce是传入的加减数字,reduce是被加数(被减数),s是加减符号
function formatNum(add, reduce, s, num) {
let m = Math.pow(10, num); //num是10的次幂
let res = s == '+' ? (add * m + reduce * m) / m : (add * m - reduce * m) / m;
return Math.round(res * m)/m;
}
console.log(formatNum(0.1,0.2,'+',2))
console.log(for

解决js加减计算精度误差的问题最先出现在Python成神之路

版权声明:
作者:Alex
链接:https://www.techfm.club/p/22562.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>