2017-07-07 10 views
-5

1つの数字が別の数字よりも大きいかどうかを調べるJavaScriptのif文があります。 (順序付け= pAvailable>)ただしpAvailable 10と順序付け数は、それが私がいるかどうかを確認するために、生番号10および8に変数を置換アルド8が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は文字列の比較になり、文字列、です。 "8"は文字列の最初の文字( "b"> "ac"のように)のため "10"以上と見なされます。それを解析するために数値に解析してください:

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

私は家に帰るときに試してみますが、実際には変数を10番と8番の変数に置き換えました。結果は同じです –

+0

なぜ、値と型を記録するために@LukeDSを求めていたのですか?私はこれもそうだと思う。 –

+1

@ルークDS私は疑問に思うが、 '10> = 8'が' false'になることはまったくない。しかし、 '' 10 "> =" 8 "'はそれを正確に行います。 –

関連する問題