2017-07-07 91 views
-5

我有一個JavaScript if語句來檢查一個數字是否大於另一個數字。 如果(pAvailable> =訂購)然而當pAvailable是10和有序數爲8。由於某些原因它認爲圖8是大於10。 我ALDO替換原始數據10和8中的變量,以檢查是否問題仍然存在,現在仍然存在。JavaScript if語句認爲8大於10

function checkQuantity(pID, pAvailable, ordered){ 
     if(pAvailable >= ordered){ 
      setCookie("order", pID + " " + pAvailable + " " + ordered); 
      //location.reload(false); 
      return true; 
     }else{ 
      alert("We don't have these many in stock"); 
      return false; 
     } 
    } 
+0

我不能再現這;你可以包含一個[mcve],以便我們可以運行該代碼並重現**確切的問題**? – Aurora0001

+0

你在說「如果pAvailable'大於或等於'ordered'」。你需要'<='。 –

+1

最可能'pAvailable'和'ordered'是字符串,這使得它成爲字符串比較。由於字符串中的第一個字符(很像「b」>「a」),因此「8」被認爲超過「10」。解析他們到數字來解決它: –

回答

1

最有可能pAvailableordered是字符串,這使得它成爲字符串比較。由於字符串中的第一個字符(很像「b」>「ac」),「8」被認爲超過「10」。解析他們到數字來解決它:

if (Number(pAvailable) >= Number(ordered)) { ... } 
+0

我會嘗試當我回家,但我實際上取代了數字10和8的變量,結果是一樣的 –

+0

這就是爲什麼我問@LukeDS記錄值和類型!我也懷疑是這樣。 –

+1

@LukeDS我懷疑它,絕對沒有辦法'10> = 8'會導致'false'。但是,「10」> =「8」'就是這樣做的。 –