2

我的脚本计算产品的重量。整箱重 25.2KG。每件商品重 4.2 公斤,整箱 6 件。

我正在检查 Javascript if 框。

   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?)

谁能解释这种行为?

4

1 回答 1

1

问题是您使用浮点数而不是整数进行模数。

75.6 % 25.2 = 25.199999999999996

756 % 252 = 0

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

检查这个

25.199999999999999 - 25.2

它会给你0:D

于 2013-05-23T09:21:13.263 回答