需求:左边表格相加的值 与 右边表格相加的值相同
1、场景:在js中float数据相加,有的正确有的错误
1.001+2.002=3.0029999999999997
原因是js自带的精度问题,
参照网上:
//浮点类型 加法
function floatAdd(arg1, arg2) {
var r1, r2, m;
try {
r1 = arg1.toString().split(".")[1].length//获取小数点的位数
} catch (e) {
r1 = 0
}
try {
r2 = arg2.toString().split(".")[1].length
} catch (e) {
r2 = 0
}
m = Math.pow(10, Math.max(r1, r2));//获取放大倍数
var arg1M = arg1 * m;
var arg2M = arg2 * m;
var argM = arg1M + arg2M;
var number = argM / m;
return number;
}
这个number结果也是3.0029999999999997
2、目前解决的方法是:
使用toFixed(3)对结果进行处理保留小数点后三位
var leftValue = number1.toFixed(3); var rightValue = number2.toFixed(3);
再进行比较操作或其他相关操作