JavaScript 浮点数运算 精度问题_javascript技巧_脚本之家

[code]
按正常计算的话,除第一行外,其他都应该要得到精确的结果,从弹出的结果我们却发现不是我们想要的正确结果。为了解决浮点数运算不准确的问题,在运算前我们把参加运算的数先升级到整数,等运算完后再降级。现收集并整理贴于此,以备后用。
加法 Js代码 [code]
//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用:accAdd //返回值:arg1加上arg2的精确结果 function accAdd{ var
r1,r2,m; try{r1=arg1.toString[1].length}catch{r1=0}
try{r2=arg2.toString[1].length}catch{r2=0} m=Math.pow return /m }
//给Number类型增加一个add方法,调用起来更加方便。 Number.prototype.add =
function { return accAdd; }
//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用:accAdd //返回值:arg1加上arg2的精确结果 function accAdd{ var
r1,r2,m; try{r1=arg1.toString[1].length}catch{r1=0}
try{r2=arg2.toString[1].length}catch{r2=0} m=Math.pow return /m }
//给Number类型增加一个add方法,调用起来更加方便。 Number.prototype.add =
function { return accAdd; } 减法 Js代码 [code]
//说明:javascript的减法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。
//调用:accSub //返回值:arg1减上arg2的精确结果 function accSub{ return
accAdd; } //给Number类型增加一个sub方法,调用起来更加方便。
Number.prototype.sub = function { return accSub; }
//说明:javascript的减法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。
//调用:accSub //返回值:arg1减上arg2的精确结果 function accSub{ return
accAdd; } //给Number类型增加一个sub方法,调用起来更加方便。
Number.prototype.sub = function { return accSub; } 乘法 Js代码 复制代码 代码如下:
//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用:accMul //返回值:arg1乘以arg2的精确结果 function accMul { var
m=0,s1=arg1.toString; try{m+=s1.split[1].length}catch{}
try{m+=s2.split[1].length}catch{} return Number*Number/Math.pow }
//给Number类型增加一个mul方法,调用起来更加方便。 Number.prototype.mul =
function { return accMul; }
//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用:accMul //返回值:arg1乘以arg2的精确结果 function accMul { var
m=0,s1=arg1.toString; try{m+=s1.split[1].length}catch{}
try{m+=s2.split[1].length}catch{} return Number*网赌正规网站网址,Number/Math.pow }
//给Number类型增加一个mul方法,调用起来更加方便。 Number.prototype.mul =
function { return accMul; } 除法 Js代码
//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用:accDiv //返回值:arg1除以arg2的精确结果 function accDiv{ var
t1=0,t2=0,r1,r2; try{t1=arg1.toString[1].length}catch{}
try{t2=arg2.toString[1].length}catch{ r1=Number.replace
r2=Number.replace return ; } }
//给Number类型增加一个div方法,调用起来更加方便。 Number.prototype.div =
function { return accDiv; }
//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用:accDiv //返回值:arg1除以arg2的精确结果 function accDiv{ var
t1=0,t2=0,r1,r2; try{t1=arg1.toString[1].length}catch{}
try{t2=arg2.toString[1].length}catch{ r1=Number.replace
r2=Number.replace return ; } }
//给Number类型增加一个div方法,调用起来更加方便。 Number.prototype.div =
function { return accDiv; } 测试一把 Js代码 复制代码 代码如下:

Js代码 复制代码 代码如下:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图