Javascript模运算会产生错误的结果

时间:2013-05-23 09:11:30

标签: javascript modulo

我的脚本计算产品的重量。全箱重量25.2KG。每个项目重4.2KG,制作6个整箱。

如果是框,我正在使用Javascript。

   alert(jsonData.total_weight  + ' % ' +  fullpackweight + ' = ' + jsonData.total_weight % fullpackweight);
if(jsonData.total_weight % fullpackweight == 0) {
    $('#fill_status').hide();
    $('#fill_status i').html('OK ' + jsonData.total_weight);
} else { 
    $('#fill_status').show();
    $('#fill_status i').html('NOT OK ' + jsonData.total_weight);
}

脚本顶部的警告框提供以下结果:

25.2 % 25.2 = 0
50.4 % 25.2 = 0
75.6 % 25.2 = 25.199999999999996 (WHY?)
100.8 % 25.2 = 0
126 % 25.2 = 3.552713678800501e-15 (WHY?)

任何人都可以解释这种行为吗?

1 个答案:

答案 0 :(得分:1)

问题是你使用浮点而不是整数来模数。

75.6 % 25.2 = 25.199999999999996

BUT

756 % 252 = 0

因此,转换为整数(使用* 10)将解决您的问题。

检查

25.199999999999999 - 25.2

它会给你0:D