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