-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
Description
解决js 浮点数相乘精确度问题
var array = [0.97, 0.99, 0.99], val=1, vals=1;
for (var i = 0; i < array.length; i++) {
val *= array[i];
vals = accMul(array[i], vals)
}
console.log(val, vals)
function accMul(arg1,arg2) {
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}Reactions are currently unavailable