场景:
计算金额时,发现两个数相减最后的金额不等于相减后的实际金额,
有两位小数的两个数相减,有时候会不等于实际应得的金额,而是会出现一长串的数字。
问题描述
计算金额时,发现两个数相减最后的金额不等于相减后的实际金额,
例如:8.94-8.93:
var a = 8.94;
var b = 8.93;
console.log(a-b);
//实际的结果是:0.009999999999999787
原因分析:
js计算浮点型数值时会丢失精度
解决方案:
先转换成对应的整数,然后再两个整数相减,将得出的结果转换成对应的小数。
var a = 8.94;
var b = 8.93;
c = parseInt(a*1000) - parseInt(b*1000)
d = c/1000;
console.log(d);
//最后计算出的d结果为0.01。
这样问题就解决了,哈哈!