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.80ではなく$324.79999999999995で埋められるようになります。これは、より正確です。
奇妙な、私は知っています。エラーなどがないことを確認するために、さまざまなポイントであらゆる種類のアラートを試しました。