解决小数加减乘除精度丢失

加法

function add(arg1,arg2) {

      var r1, r2, m;

      try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }

      try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }

      m = Math.pow(10, Math.max(r1, r2))

      return (arg1 * m + arg2 * m) / m

    },



乘法

  function accMul(arg1,arg2)

  { 

  varm=0,s1=arg1.toString(),s2=arg2.toString(); 

  try{m+=s1.split(".")[1].length}catch(e){} 

  try{m+=s2.split(".")[1].length}catch(e){} 

  returnNumber(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)  } 

减法

function Subtr(arg1,arg2){

    var r1,r2,m,n; 

    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} 

    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} 

    m=Math.pow(10,Math.max(r1,r2)); 

    n=(r1>=r2)?r1:r2; 

    return((arg1*m-arg2*m)/m).toFixed(n); 

}

你可能感兴趣的:(解决小数加减乘除精度丢失)