0

重複の可能性:
JavaScriptの数学は壊れていますか?

この質問から: すべての入力値を取得して加算します

プロモーションがあります:

各価格を1つ購入するのは14.37、10を購入するのは13.28、20を購入するのは10.78です。

今、私はカウンターをしたいです。http://down123.xxmn.com/count.htm

カウンターが全額を書き込みます。今、私のコードに何か問題があります。

入力ボックスに5を入力した場合は、別の入力ボックスに5を入力します。全体の価格は132.8ではありません。なぜ?

入力ボックスの数字を削除しても、全体の価格は変わりません。ありがとうございました

コード:

var $inputs = jQuery('.liste_couleur_qty li input');
$inputs.keyup(function() {
   var result = 0;
   $inputs.each(function(){
     result += parseInt(this.value, 10);
   });
   var JsonData =[{"price_id":"1","website_id":"0","price_qty":1,"price":"14.37"},
 {"price_id":"2","website_id":"0","price_qty":10,"price":"13.28"},
 {"price_id":"3","website_id":"0","price_qty":20,"price":"10.78"}, 
  {"price_id":"3","website_id":"0","price_qty":50,"price":"9.23"},
   {"price_id":"3","website_id":"0","price_qty":100,"price":"7.91"}
 ]
   var sorted = JsonData.sort(function(a,b){return a.price_qty - b.price_qty;});

var i=0;
while(i < sorted.length && sorted[i].price_qty <= result){i++;} 

var price = sorted[i-1].price;

   price= price*result;

   jQuery('#qtyvalue').html("Total price is " + price);    
});

現在、数量が9の場合、適切な価格は9*14.37です。しかし、私のカウンターは正しくありません。

4

1 に答える 1

0

あなたが探している答えはと呼ばれる方法です.toFixed()

価格を設定する最後の行を変更してみてください

jQuery('#qtyvalue').html("Total price is " + price.toFixed(2));

そしてそれはうまくいくはずです。


更新

テキストボックスを空にすると、値が。''ではなく0、追加できないため、コードが機能しなくなります。コードの5行目を次のように更新します。

result += parseInt((this.value === '' ? 0 : this.value), 10);
于 2012-11-24T08:43:40.550 に答える