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;

  }