您的位置:首页 > Web前端 > JavaScript

Javascript 函数parseInt()转换时出现bug问题

2014-05-20 00:00 501 查看
这是一个很诡异的事情,今天测试的测出来的。parseInt(1.13*100),实际返回值是112。直接看代码吧
<head> 
<script type="text/javascript"> 
function test(){ 
var thisvalue = 0; 
thisvalue=yuanToFen($("#inp").val()); 

alert(thisvalue); 
} 
/*元转分*/ 
function yuanToFen(yuan){ 
return parseInt(yuan*100,10);//解决方法:将 此处返回改为:parseInt(yuan*1000,10)/10; 
} 
</script> 
</head> 
<body> 
<div> 
<input type="text" id="inp" name="pl" value="1.14"/><!-- 当输入值是:1.13、1.14、1.15、1.16时,此bug才会出现,其他数据目前没有发现有此bug --> 
<input type="button" name="ok" value="确认" onclick="test();"/> 
</div> 
</body> 
</html>

当执行以上代码时,你会发现,当你输入1.13-1.16这期间的数字时,比如输入了1.13,但是alert出来的值却是1.12,同样,输入是1.16则alert出1.15.

但是当输入2.13、3.13、0.13都不会出现这样的情况。

此bug对于最做账的业务来说尤其重要。

例如:你要给某某人汇款,汇款单位是(亿元),你汇款1.13个亿,结果实际成了1.12个亿。哈哈。开个玩笑。但是程序是讲究严谨,不管是一分钱还是零点零一分钱是谁的就是谁的,千万不能马虎。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: