例: 0.1+0.1+0.1+0.7 != 1
0.1+0.2 != 0.3
解决办法:
相加
function addNum(num1, num2) { let sq1, sq2; try { sq1 = num1.toString().split(".")[1].length; } catch (e) { sq1 = 0; } try { sq2 = num2.toString().split(".")[1].length; } catch (e) { sq2 = 0; } const m = Math.pow(10, Math.max(sq1, sq2)); return (num1 * m + num2 * m) / m; } 相除function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{ t1=arg1.toString().split(".")[1].length;
}catch(e){}
try{ t2=arg2.toString().split(".")[1].length;
}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".","")); r2=Number(arg2.toString().replace(".","")); return (r1/r2)*pow(10,t2-t1);
}
}
相乘
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)} )}标签:arg1,相加,js,try,length,toString,split,catch,小数 From: https://www.cnblogs.com/guodadan/p/16993768.html