日期:2014-05-16  浏览次数:20604 次

JS的数字处理能力这么不稳定?各大虾进来讨论下
本来要做个计算器外观的数字输入界面,在代码编写的时候遇到奇异之事,浪费半个小时之后,问题逐渐集中到JS本身,为了方便大家看,这里就不贴多少代码了,就两句:
var vtmp = 5 + 1 * 0.1 + 2 * 0.01;
alert(vtmp);
就是要显示一个5.12出来,结果,出来一个5.1999999999(忘了多少个9了),不信的朋友可以试以下。
我试了很多次,6.12也是6.199999999,8.12就是8.12了,真TM见鬼了。
求指教。

------解决方案--------------------
有什么怪异?计算机处理浮点数本身就有误差。

http://www.cnblogs.com/konooo/archive/2010/01/23/1654617.html
------解决方案--------------------
js 浮点计算是会有这BUG
var vtmp = 5 + 1 * 0.1 + 2 * 0.01;
alert(vtmp .toFixed(2))