我在这里有一个小提琴:http://jsfiddle.net/94wQJ/1/ - 但可能有人可以通过以下方式提出建议。
<button type="button" id="allocate">Calc</button>
$('#allocate').click(function () {
val1 = 25.00;
val2 = 16.37;
val3 = val1-val2;
alert(val3);
});
25 - 16.37 = 8.63 - 但是,val3的警报= 8.62999999999
为什么不准确?
谢谢,
标记
答案 0 :(得分:5)
答案 1 :(得分:3)
为什么不准确?
这是Is floating point math broken?的副本,但要回答您的具体问题:浮点数通常会将数字存储在基数2中,因为它允许比使用基数10更准确地存储更多数字,但代价是不存在能够准确存储所有基数为10的数字,即使是少量的小数位。
答案 2 :(得分:1)
许多小数部分不能完全用二进制表示。
使用.toFixed(2)
答案 3 :(得分:1)
请检查
val3 = Math.round(val3 * 100)/ 100;
I have update here http://jsfiddle.net/94wQJ/7/