为什么它不断添加一个随机0

Why does it keep adding a random 0?

本文关键字:一个 随机 添加 为什么      更新时间:2023-09-26

我试图用javascript构建一个MCT计算器,但在创建中值的过程中,我不断出错。这是我的代码:(请记住,我对javascript相对陌生)

var min = prompt("Enter minimum value");
var max = prompt("Enter maximum value");
if (min > max) {
    alert("Error:'n'n'nMinimum value '" + min + "' is greater than Maximum value '" + max + "'");
} else {
    var a = (max - min);
    alert("variable a is " + max + " - " + min + " = " + a);
    var b = a / 2;
    alert("variable b is " + a + " / 2 = " + b);
    var c = min + b;
    alert("variable c is " + min + " + " + b + " = " + c);
    alert("Range is " + a + "'n'nMedian is " + c + "'n'nMin is " + min + "'n'n Max is " + max);
}

如果您键入5表示最小值,键入10表示最大值,它会告诉您5大于10,但它不是。。如果你键入10表示最小值,键入15表示最大值,它的中值将是102.5,而不是12.5。我根本不明白,请帮助:)

尝试使用数字,而不是字符串:

var min = parseInt(prompt("Enter minimum value"), 10);
var max = parseInt(prompt("Enter maximum value") , 10);

或者,如果你想允许浮动:

var min = parseFloat(prompt("Enter minimum value"));
var max = parseFloat(prompt("Enter maximum value"));

这是因为字符串是根据字典进行比较的,使用的是它们的数字字符代码,而不是数字本身的值。

prompt函数返回一个字符串,并根据字符串中每个字符的Unicode代码点(也称为词典或字母顺序)对字符串进行比较。"5"的码点大于"1"的码点,因此字符串"5"实际上大于字符串"10"(即在字典排序中位于它之后)。

尝试如下解析输入:

var min = parseFloat(prompt("Enter minimum value"));
var max = parseFloat(prompt("Enter maximum value"));