当数量等于10时,为什么算价不对?

时间:2012-11-24 08:23:10

标签: javascript jquery

  

可能重复:
  Is JavaScript’s Math broken?

来自这个问题: get all the input value and make an addition

有促销活动:

买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。但我的柜台不对。

1 个答案:

答案 0 :(得分:0)

您正在寻找的答案是一种名为.toFixed()

的方法

尝试更改将价格设置为

的最后一行
jQuery('#qtyvalue').html("Total price is " + price.toFixed(2));

这应该有用。


<强>更新

当您清空任何文本框时,代码将停止工作,因为值为''而不是0,并且无法添加。将代码的第5行更新为:

result += parseInt((this.value === '' ? 0 : this.value), 10);