您的位置:首页 > Web前端 > JavaScript

解决 js 加法,乘法不精确问题

2016-05-30 11:51 411 查看
//乘法 

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)
}

//加法

    function accAdd(arg1, arg2) {

      var r1, r2, m, c;

      try {

         r1 = arg1.toString().split(".")[1].length;

     }

     catch (e) {

         r1 = 0;

     }

     try {

         r2 = arg2.toString().split(".")[1].length;

     }

     catch (e) {

         r2 = 0;

     }

     c = Math.abs(r1 - r2);

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

     if (c > 0) {

         var cm = Math.pow(10, c);

         if (r1 > r2) {

             arg1 = Number(arg1.toString().replace(".", ""));

             arg2 = Number(arg2.toString().replace(".", "")) * cm;

         } else {

             arg1 = Number(arg1.toString().replace(".", "")) * cm;

             arg2 = Number(arg2.toString().replace(".", ""));

         }

     } else {

         arg1 = Number(arg1.toString().replace(".", ""));

         arg2 = Number(arg2.toString().replace(".", ""));

     }

     return (arg1 + arg2) / m;
 }

                                                                                                                                                                                                                                                            Songsong
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript