var quantity = $(this).find('td:eq(2) input').val()*1;
var unitprice = $(this).find('td:eq(3) input').val()*1;
var totaltax = 0;
$(this).find('td:eq(4) input[name^=taxamount]').each(function(){
totaltax = (totaltax*1)+($(this).val()*1);
});
var subtotal = (unitprice+totaltax);
alert(subtotal+' is unit subtotal, to mulitply by '+quantity);
var total = subtotal*quantity;
$(this).find('td:last').html('$'+total);
在这种情况下,基于我的 DOM,结果都是整数(特别是因为我确保将 *1 修饰符应用于值以确保它们是数字,而不是字符串)。
在这种情况下,这些是在上述代码的前 7 行中返回的值(并通过警报命令验证)数量:10 单价:29 总税:3.48 小计 = 32.48
当我为总变量乘以小计*数量时,总回报:总计:324.79999999999995
所以最后,我得到 td:last 填充 $324.79999999999995 而不是 $324.80 更正确。
很奇怪,我知道。我在不同的点尝试了各种警报,以确保没有错误等。