当我乘以100*4.6
或100*4.9
时,代码分别产生459.99999999999994
和490.00000000000006
。仅针对这些特定数字执行此操作。例如,当我乘以100*4.7
时,它会正确产生数字470
。
我一时兴起尝试parseFloat()
,但没有帮助(我也没想到)。我不想使用Math.round
或.toFixed()
,因为在我的完整代码中,我会随机生成乘以100的数字,因此有时应该使用小数。 (例如,如果代码生成100 * 3.652
,答案应该是365.2
,所以我不想简单地将其作为创可贴解决方案。)
为什么这些特定数字会发生这种乘法错误?
Javascript:
var Product = 100* 4.6;
$(".Product").html(Product);
var Product2 = 100* 4.7;
$(".Product2").html(Product2);
var Product3 = 100* 4.9;
$(".Product3").html(Product3);
HTML:
<span class="Product"></span>
<br>
<span class="Product2"></span>
<br>
<span class="Product3"></span>
JSFiddle: