以下のコードは、ユーザーが値を入力できるプログラムの開始点であり、コンピュータが値を推測します。私は自分の入力検証に固執しています。私は、このようなしかし、25と49JavaScript:値の小数点以下桁数が異なると論理比較が失敗する
Image of passed input validation
と同じ小数点以下の桁と数字を比較したとき、私は入力検証が必要がありますが、9および25のようなものを比較しようとすると、私の入力検証は、合格何らかの理由それを許可すると、私のコードのelse部分に行きます。私はこれが、JavaScriptがデータ型を解釈する方法と関係があると考えています。コードはちょっと混乱しており、プログラムは完全ではありません。フォーカスは、HTMLと入力検証から値を引き出しているところです。ここにコードがあります。
function runGame() {
//get variables from the input fields in HTML form
var low = document.getElementById('lowNum').value;
var high = document.getElementById('highNum').value;
var guess = document.getElementById('compGuess').value;
//input validation
if (low < high && low > 0 && high <= 50 && guess > 0 && guess <= 10) {
alert("Low number: " + low + "\nHigh Number: " + high + "\nComputer Guesses: " + guess);
document.getElementById("computerGuessVal").innerHTML = getRndInteger(low, high);
} else {
alert("Invalid selection. Make sure that the number range is between 1 and 50 and guesses are higher than zero.");
}
}
function getRndInteger(low, high) {
high = Math.floor(high);
low = Math.ceil(low);
return Math.floor(Math.random() * (high - low + 1)) + low;
}
console.log paramsを使用してデータ型をチェックし、parseIntまたはparseFloatを使用して正しい型にします – LordNeo
コードに構文エラーがあります。 2番目の閉じ括弧のために関数は "else"の前で終了します。 – AmericanUmlaut
インデントが一貫していないことと余分な余白があるため、コードを読みにくくなります。 (私は文法エラーとインデントと空白を解決するために質問を編集しました。あなたの質問をよりうまく整形しようとしてください) – AmericanUmlaut