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 回答