为什么两个数字的乘积生成不应该存在的小数(仅针对特定数字)?

时间:2018-12-28 16:56:15

标签: javascript jquery decimal rounding multiplication

当我乘以100*4.6100*4.9时,代码分别产生459.99999999999994490.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:

http://jsfiddle.net/2owtz3vq/1/

0 个答案:

没有答案