• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数値の比較で正しく評価されない理由)

数値の比較で正しく評価されない理由

このQ&Aのポイント
  • 数値の比較で正しく評価されない理由について説明します。
  • サンプルのコードでは、識別番号のラスト値のみを比較していますが、実際は複数の値を比較する必要があります。
  • また、この比較の方法自体が間違っている可能性もあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

どんなプログラムの値にも「型」があります。 例の場合は、数値として期待しているところを文字列として認識しているのではないでしょうか。 分かりやすく言うと、電話番号の「0120」は、文字列であって数字ではありません。仮に「0120+1」とやっても、0121(足し算)にはならずに、01201(文字の連結)になります。同じように、文字列として認識されている変数に<(大なり)などの演算子を使っても意味をなしません。文字列として認識されている変数を数値に変換するには、Number()がいちばん手っ取り早いと思います。

kiseki777
質問者

お礼

<script type="text/javascript"> function spl(f){ var selValue = Number(f.sss.value); var idID = document.getElementsByTagName('p'); var idLen = idID.length; for(i=0; i<idLen; i++){ var spans = idID[i].getElementsByTagName('span'); var pawwar = Number(spans[2].innerHTML); if(pawwar<=selValue){ alert("true"); }else{ alert("false"); } } } </script> このようにNumber()で型変換したらできました。 有難うございました。

関連するQ&A