Posted in Javascript onMarch 28, 2014
/精确计算加法和减法。例如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; }
js中精确计算加法和减法示例
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@