javasCript精密度计算方法。闹心的精度

javasCript精度计算方法。闹心的精度。关键字: javascript 浮点数 小数 运算 精度问题?JavaScript小数在做四

javasCript精度计算方法。闹心的精度。

关键字: javascript 浮点数 小数 运算 精度问题

?

JavaScript小数在做四则运算时,精度会丢失,这会在项目中引起诸多不便,先请看下面脚本:

?

???按正常计算的话,除第一行外(因为其本身就不能除尽),其他都应该要得到精确的结果,从弹出的结果我们却发现不是我们

?

想要的正确结果。为了解决浮点数运算不准确的问题,在运算前我们把参加运算的数先升级(10的X的次方)到整数,等运算完

?

后再降级(0.1的X的次方)。现收集并整理贴于此,以备后用。

?

加法

?

//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。//调用:accDiv(arg1,arg2)//返回值:arg1除以arg2的精确结果function accDiv(arg1,arg2){    var t1=0,t2=0,r1,r2;    try{t1=arg1.toString().split(".")[1].length}catch(e){}    try{t2=arg2.toString().split(".")[1].length}catch(e){}    with(Math){        r1=Number(arg1.toString().replace(".",""))        r2=Number(arg2.toString().replace(".",""))        return (r1/r2)*pow(10,t2-t1);    }}//给Number类型增加一个div方法,调用起来更加方便。Number.prototype.div = function (arg){    return accDiv(this, arg);}
?