Javascript生成错误数字的问题
Issue With Javascript Generating The Wrong Numbers
很
抱歉标题,这个问题非常特定于我的代码,我不知道如何措辞。
我正在制作一个网页,可用于在给定范围内将里程转换为KM,或将KM转换为里程。我有两个用于输入的文本框,因此例如,如果您输入 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)));
}
}
}
}
这让我发疯,我确信这是一个小错误。
问题就在这里:
var f = document.getElementById(from).value;
var t = document.getElementById(to).value;
f
和 t
都将是字符串,因为它们来自输入字段,因此3
"大于"例如10
。 您需要将它们解析为数字,使用 parseInt
:
var f = parseInt(document.getElementById(from).value, 10);
var t = parseInt(document.getElementById(to).value, 10);
相关文章:
- Podio问题:Can't将字符串转换为数字
- 在我的网站上创建一个在1-10之间不断变化的数字时遇到了问题.Javascript
- 浮点数字问题JavaScript
- 数据表rowId以数字问题开头
- JavaScript正则表达式代码匹配字符和数字的问题
- Java脚本中的一些大数字出现问题
- Javascript生成错误数字的问题
- 通过 JavaScript 在 td 中增加数字的问题
- 有一些JavaScript问题,for loop.将数字转换为其字符串值
- 这个javascript日期解析有什么问题?为什么 js 讨厌数字 8
- jQuery data() 将字符串视为数字的问题
- Javascript新手问题,将数字转换为任何单词
- 在 JavaScript 中向上舍入数字有问题
- Google Charts - hAxis 上的数字/字符串问题(Jquery ajax JSON 数据)
- JavaScript,数字舍入问题
- 将 JavaScript 字符串转换为数字时出现问题
- 检查数组是否包含数字(问题为 0)
- 可以't将字符串转换为数字javascript我的代码出了什么问题
- 从AJAX请求获取javascript变量的数字时遇到问题
- 转换为数字的问题