2017-08-22 123 views
-4

我有这样的代码:如何计算总价JS

function calculate_sale_article(id){ 
    var article_price = $("#article_price_"+id).val() 
    var article_cant = $("#article_cant_"+id).val() 
    var article_discount = $("#article_discount_"+id).val() 

    $("#article_ammount").val(article_price * article_cant/article_discount) 
} 

Error: "Infinity"

此错误是当article_discount到达了0,我怎么能解决这个问题?

+0

使用IF语句。 –

+0

还要确保所有值都是数字而不是字符串。如果需要,可将其转换为数字。 – Win

+0

您还应该将字符串强制转换为数字。就像'var article_price = + $(“#article_price _”+ id).val()' –

回答

0

添加一个简单的零检查(零除异常处理)。替换以下行:

$("#article_ammount").val(article_price * article_cant/article_discount) 

像这样的东西:

if (article_discount != 0) 
    $("#article_ammount").val(article_price * article_cant/article_discount) 
else 
    $("#article_ammount").val(article_price * article_cant) 
+2

我想,如果'折扣'为0,'article_amount'应该是'article_price * article_cant',而不是0 – quirimmo

+0

@quirimmo我正在做一个异常处理'article_discount',这是除数。如果没有处理,可能会有问题,对吗? –

+2

是的,我得到了你的观点,这是完全正确的,只是说当'article_discount'为0时,'article_amount'应该是全价而不是0 :) – quirimmo

0
var article_price = parseInt($("#article_price_"+id).val()); 
     var article_cant = parseInt($("#article_cant_"+id).val()); 
var discount = parseInt($("#article_discount_"+id).val()); 
     var article_discount = discount?discount:1; 

     $("#article_ammount").val(article_price * article_cant/article_discount) 
+1

可能有解释。 –

+0

这个表达式'var article_discount = discount?discount:1;'可以写成'var article_discount = discount || 1;' – quirimmo

+1

@quirimmo LoL。我知道......他是......我让新用户知道回答的正确方法。 –