首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js小数乘法精密度

2012-10-27 
js小数乘法精度思路:将小数*基数变成整数再计算,结果再除以基数搜索整理了几种方法如下:一、表达式解决aler

js小数乘法精度
思路:将小数*基数变成整数再计算,结果再除以基数
搜索整理了几种方法如下:

一、表达式解决
alert(1.1*(2.23*100)/100);

二、添加到Number的原型
<script>
Number.prototype.rate=function(){
var oStr=this.toString();
if(oStr.indexOf(".")==-1)
return 1;
else
return Math.pow(10,parseInt(oStr.length-oStr.indexOf(".")-1));
}
function tran(){
args=tran.arguments;
var temp=1;
for(i=0;i < args.length;i++)
temp*=args[ i ]*args[ i ].rate();
for(i=0;i < args.length;i++)
temp/=args[ i ].rate();
return temp;
}
</script>

使用方法:11*22.9,可以这样写tran(11,22.9)

三、拆分法
20*2.24=20*2+20*0.24


四、思路同一
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)).toFixed(2);
    }


热点排行