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

JS银行家难题,高手来
<html>
<head>
</head>
<body>
<form>
<input type="button" value="0.3915.toFixed(3)" onclick="alert(0.3915.toFixed(3))" >
</form>
</body>
</html>

代码如上,得到的结果是0.392,如果换成下面的代码
<form>
<input type="button" value="0.3915.toFixed(3)" onclick="alert((0.435*0.9).toFixed(3))" >
</form>
结果跟上面的一样,但如果再稍微更改一下,变成
onclick="alert((0.435*90/100).toFixed(3))"
结果就变成了0.391,这是为什么呢?
怎么得到正确的结果

------解决方案--------------------
alert((0.435*90/100)) //0.39149999
alert((0.435*0.9)) //0.3915

你改成下面的形式就对了
alert((0.435*(90/100)).toFixed(3))"

改变了计算优先级,就很可能会导致不一样的结果。
------解决方案--------------------
探讨

alert((0.435*90/100)) //0.39149999
如果得到的是这样的结果的话,那问题是出在哪里呢?