以下为引用的内容: <script> alert(11*22.9) </script> |
结果是251.89999999999998 而不是251.9
这个问题想必有很多人为之头痛。那么如何解决呢?在此给出解决办法。解决问题的大概思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确的结果了。
以下为引用的内容: <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> |
该解决办法是比较麻烦的办法,但是却能让你大概了解解决这个问题的实际过程。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。