确定最小最大值

时间:2016-11-02 00:37:45

标签: javascript

过去10,它将使最小值为10,并且除了数字“1”之外,将最大值设为6。我不确定为什么以及是否有人可以让我知道或推动我做出很棒的答案。

function btnMinMax_onclick()
{
    // assign textbox elements to variables for easier access
    var firstTextbox = document.getElementById("txtNum1");
    var secondTextbox = document.getElementById("txtNum2");
    var minTextbox = document.getElementById("txtMin");
    var maxTextbox = document.getElementById("txtMax");

    var num1 = firstTextbox.value;
    var num2 = secondTextbox.value;

    var isMin = determineMinimum(num1, num2); 
    var isMax = determineMaximum(num1, num2); 

    minTextbox.value = isMin;
    maxTextbox.value = isMax;
}

function determineMinimum(number1, number2)
{
    if (number1 < number2){
        return number1;
    } else {
        return number2;
    }
}

function determineMaximum(number1, number2)
{
    if (number2 > number1){
        return number2;
    } else {
        return number1;
    } 
}

2 个答案:

答案 0 :(得分:3)

您从文本框中提取的值为String,而不是Number。您需要明确转换,否则将按字典顺序排序,而不是按数字顺序排序。

最简单的解决方案是改变:

var num1 = firstTextbox.value;
var num2 = secondTextbox.value;

为:

var num1 = parseInt(firstTextbox.value, 10);
var num2 = parseInt(secondTextbox.value, 10);

所以你有真正的整数值,而不是看起来像整数的字符串。如果您需要接受非整数值(例如parseFloat),请使用3.14

答案 1 :(得分:0)

你这里有问题:

var num1 = firstTextbox.value;
var num2 = secondTextbox.value;

var isMin = determineMinimum(num1, num2); 
var isMax = determineMaximum(num1, num2); 

.value会为您string。但是你想比较数字,所以你必须在比较之前将字符串转换为数字。

你可以这样做:

function determineMinimum(number1, number2) {
    number1 = Number(number1);
    number2 = Number(number2);

    // your code here
}