解决JavaScript计算不精确问题,现拿现用_ZGH_77733的博客-CSDN博客_js精度计算不准确
参考
// 精确运算 乘
function mul(a, b) {
let c = 0,
d = a.toString(),
e = b.toString();
try {
c += d.split(".")[1].length;
} catch(f) {}
try {
c += e.split(".")[1].length;
} catch(f) {}
return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
}
// 精确运算 加
function add(a, b) {
let c, d, e;
try {
c = a.toString().split(".")[1].length;
} catch(f) {
c = 0;
}
try {
d = b.toString().split(".")[1].length;
} catch(f) {
d = 0;
}
return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;
}
//数组计算总数
function calTotal(list) {
let sum = 0;
for(let i = 0; i < list.length; i++) {
sum = add(sum, list[i]);
}
return sum;
}