JavaScript:当值具有不同的小数位时,逻辑比较失败

JavaScript: Logical Comparison fails when values have different decimal places

下面的代码是一个程序的开头,它允许用户输入值,然后计算机会猜测这些值。我坚持我的输入验证。出于某种原因,当我比较具有相同小数位的数字(例如 25 和 49)时,我的输入验证通过了。

Image of passed input validation

然而,当我尝试比较 9 和 25 之类的东西时,虽然输入验证应该允许它通过,但它转到了我代码的其他部分。我认为这与 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;
}

更新 - 解决了我在检查数据类型后将 ParseInt 添加到我的代码

带有警报(猜测类型)。这是工作代码:

//从HTML形式的输入字段中获取变量并转换为整数

var low = parseInt(document.getElementById('lowNum').value);

var high = parseInt(document.getElementById('highNum').value);

var guess = parseInt(document.getElementById('compGuess').value);

感谢您的建议!