2017-07-07 89 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”'就是这样做的。 –