JS jscript做小数乘法运算出现浮点错误的解决办法[转载]
2009-09-08 16:25
459 查看
JS里做小数的乘法运算时会出现浮点错误,具体可以测试一下:
<script>
alert(11*22.9)
</script>
结果是251.89999999999998 而不是251.9
这个问题想必有很多人为之头痛。那么如何解决呢?在此给出解决办法。
1、
<script>
alert(11*(22.9*10)/10);
</script>
解决问题的大概思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确的结果了。
2、
<script defer>
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
}
alert(tran(11,22.9));
</script>
该解决办法是比较麻烦的办法,但是却能让你大概了解解决这个问题的实际过程。
<script>
alert(11*22.9)
</script>
结果是251.89999999999998 而不是251.9
这个问题想必有很多人为之头痛。那么如何解决呢?在此给出解决办法。
1、
<script>
alert(11*(22.9*10)/10);
</script>
解决问题的大概思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确的结果了。
2、
<script defer>
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
}
alert(tran(11,22.9));
</script>
该解决办法是比较麻烦的办法,但是却能让你大概了解解决这个问题的实际过程。
相关文章推荐
- S里做小数的乘法运算出现浮点错误的解决方法
- [转载]Hibernate出现javax.naming.NoInitialContextException 错误的解决办法
- vmware虚拟机上安装红旗LINUX时硬盘分区出现错误的解决办法(转载)
- JavaScript对浮点小数运算结果不精确bug的解决办法
- JavaScript 运算出现多位小数的解决办法
- 问题解决_(转载)在VisualStudio 2012上使用MVC3出现错误的解决办法
- (转载)StarUML启动时候出现"System Error. Code:1722. RPC服务器不可用."错误的解决办法
- js中,小数运算时偏差(出现无尽数)的解决办法
- [转载]关于wm系统同步时ActiveSync出现85010014错误号的解决办法
- JS 浮点运算精度解决办法 (把小数转换为整数进行计算【但是不能超过js的整数上限】)
- js计算出现多位小数-Javascript 浮点运算问题分析与解决
- gcc跨版本编译出现“浮点数例外”错误解决办法
- 使用git clone出现SSL routines:SSL3_GET_SERVER_CERTIFICATE错误的解决办法
- 在VC6下编译MTL程序,出现的C4786错误的原因和解决办法
- CentOS 7中nginx反向代理因为selinux出现错误的解决办法
- Win10下安装VS2013出现“win10 windows兼容性模式已打开 请将其关闭”错误的解决办法
- C#发布程序时出现Signtool requires CAPICOM version 2.1.0.1 or higher错误的解决办法
- tsqlconnection连接datasnap出现connection closed gracefully错误的解决办法
- nginx + passenger 出现 Cannot stat .../config.ru': Permission denied 的错误的解决办法
- 针对win 7系统中matlab安装后出现的小错误解决办法