這篇文章主要介紹了js中如何精確計算加法和減法,需要的朋友可以參考下
/精確計算加法和減法。例如0.1+0.2=0.3或 0.1-0.2=-0.1 代碼如下: function addFn(dataOne,dataTwo){ var dataOneInt=dataOne.toString().split(".")[0]; var dataOneFloat=""; var dataTwoInt=dataTwo.toString().split(".")[0]; var dataTwoFloat=""; var lengthOne=0; var lengthTwo=0; var maxlength=0; if(dataOne.toString().split(".").length==2){ dataOneFloat=dataOne.toString().split(".")[1]; lengthOne=dataOneFloat.toString().length; } if(dataTwo.toString().split(".").length==2){ dataTwoFloat=dataTwo.toString().split(".")[1]; lengthTwo=dataTwoFloat.toString().length; } maxLength=Math.max(lengthOne,lengthTwo); for(var i=0;i<maxLength-lengthOne;i++){ dataOneFloat+="0"; } for(var i=0;i<maxLength-lengthTwo;i++){ dataTwoFloat+="0"; } /** *對兩個數據進行倍數放大 *使其都變為整數。因為整數計算 *比較精確。 */ var one=dataOneInt+""+dataOneFloat; var two=dataTwoInt+""+dataTwoFloat; //alert("dataOne:"+dataOne+" dataTwo:"+dataTwo +" one:"+one+" two:"+two); /** *數據擴大倍數後,經計算的到結果, *然後在縮小相同的倍數 *進而得到正確的結果 */ var result= (Number(one)+Number(two))/Math.pow(10,maxLength); return result; }