2017-08-22 172 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。我知道......他是......我讓新用戶知道回答的正確方法。 –