Javascript生成错误数字的问题

Javascript生成错误数字的问题,javascript,html,Javascript,Html,我为标题感到抱歉,这个问题对于我的代码来说非常具体,我不知道该如何表达 我正在制作一个网页,可以用来转换英里到公里,或公里到英里在给定的范围内。我有两个文本框用于输入,例如,如果输入5和50,它将生成一个表,其中包含5英里/公里到50英里/公里的所有转换,具体取决于选择的转换 问题是,如果给定范围内的较大数值大于10,小于乘以10的数值,则此操作不起作用 例如,如果我输入3和10,它将只生成一个转换为10的表,而不是中间的数字。使用3以及9和30、99和300、999和3000之间的任何数字也是

我为标题感到抱歉,这个问题对于我的代码来说非常具体,我不知道该如何表达

我正在制作一个网页,可以用来转换英里到公里,或公里到英里在给定的范围内。我有两个文本框用于输入,例如,如果输入5和50,它将生成一个表,其中包含5英里/公里到50英里/公里的所有转换,具体取决于选择的转换

问题是,如果给定范围内的较大数值大于10,小于乘以10的数值,则此操作不起作用

例如,如果我输入3和10,它将只生成一个转换为10的表,而不是中间的数字。使用3以及9和30、99和300、999和3000之间的任何数字也是一样的

以下是我确信导致问题的代码:

//gets values in the textboxes, used for the range of conversions
var f = document.getElementById(from).value;
var t = document.getElementById(to).value;

//finds which one is lowest and highest, stores them in appropriate variables
if(f > t) {
    max = f;
    min = t;
} else {
    max = t;
    min = f;
}
表格生成:

//Loops using the lowest number as a start for the for loop, ending only when it is less than or equal to the highest number
//Makes the table, inserting appropriate conversion numbers
//NOTE: choice is a boolean used to check whether we are converting from Miles to KM or KM to Miles
for(var i = min; i <= max; i++) {
    if(choice) {
        var row = tab.appendChild(document.createElement("tr"));
        for (var j = 0; j < 2; j++) {
            var cell = row.appendChild(document.createElement("td"));
            if(j == 0) {
                cell.appendChild(document.createTextNode(i));
            } else {
                cell.appendChild(document.createTextNode(convertToKm(i)));
            }
        }
    } else {
        var row = tab.appendChild(document.createElement("tr"));
        for (var j = 0; j < 2; j++) {
            var cell = row.appendChild(document.createElement("td"));
            if(j == 0) {
                cell.appendChild(document.createTextNode(i));
            } else {
                cell.appendChild(document.createTextNode(convertToMiles(i)));
            }
        }
    }
}
//循环使用最低的数字作为for循环的开始,只有当它小于或等于最高数字时才结束
//创建表格,插入适当的转换号
//注意:选项是一个布尔值,用于检查我们是从英里转换为公里还是从公里转换为英里
对于(var i=min;i而言,问题在于:

var f = document.getElementById(from).value;
var t = document.getElementById(to).value;
f
t
都是字符串,因为它们来自输入字段,因此
3
例如“大于”
10
。您需要将它们解析为数字,使用:

var f = parseInt(document.getElementById(from).value, 10);
var t = parseInt(document.getElementById(to).value, 10);