如果输入的数字小于96,则应出现0,应出现96到192之间的3,如果输入等于或大于192,则输出应为6。 但是在我的代码中由于某种原因并非如此,输入0和1返回0,输入2-99返回6,100到191返回0,192和以上返回6
这是代码
var number = document.getElementById("width").value;
var text;
if (number >= "192") {
text = "6";
} else if (number >= "96") {
text = "3";
} else {
text = "0";
}
document.getElementById("smallquantity").innerHTML = text;
答案 0 :(得分:0)
尝试比较字符串
var letter = document.getElementById("width").value;
var text;
// If the letter is "c"
if (letter.localeCompare("c")) {
text = "6";
// If the letter is "e"
} else if (letter.localeCompare("e")) {
text = "3";
// If the letter is anything else
} else {
text = "0";
}
document.getElementById("smallquantity").innerHTML = text;
答案 1 :(得分:0)
我认为你已经尝试了错误的逻辑方法。 试试以下
if(letter < "96")
text = "0";
else if (letter < "192")
text = "3";
else
text = "6";
我认为它会提供您正在寻找的输出。 但我强烈建议您解析输入,然后在带有数字比较的if块中使用它。
var letter = parseInt(document.getElementById("width").value);
if(letter < 96)
text = "0";
else if (letter < 192)
text = "3";
else
text = "6";
答案 2 :(得分:0)
字符串以字面方式进行比较,这意味着在按字母顺序列出内容时基于字符的排序;比较碰巧包含数字的两个字符串与比较两个数字不同。
"2" > "1294"
因为角色2
位于角色1
之后。
只需更改逻辑即可使用数字。首先,解析HTML元素的内容。下面的10
表示在解释数字时使用基数10(很重要,因为像"012"
这样的东西被解释为八进制数,而不是十进制数):
var letter = parseInt(document.getElementById("width").value, 10);
...然后将您的比较更改为使用数字,而不是字符串:
if (letter >= 192)
答案 3 :(得分:0)
要将其与ASCII值进行比较,首先需要convert it to ASCII。你不能马上比较。
同时,字母&#34; c&#34; ASCII值为99,而非192
您应首先转换为ASCII,然后与正确的值(数值,而不是数字作为字符串)进行比较。
你的逻辑也错了 - IF是&#34; c&#34; - &GT; ELSE是&#34; c&#34;或者&#34; e&#34;。你永远不会得到那个&#34; c&#34;在ELSE。
var letter = document.getElementById("width").value.charCodeAt(0);
var text;
// If the letter is "c"
if (letter == 99) {
text = "6";
// If the letter "e"
} else if (letter == 101) {
text = "3";
// If the letter is anything else
} else {
text = "0";
}
document.getElementById("smallquantity").innerHTML = text;
现在你理解了这个想法。您可以相应地调整IF。
答案 4 :(得分:0)
在从@jacob和@reza那里获得帮助后,这是我提出的代码解决了我的问题。感谢所有帮助我解决这个问题的人!
var number = parseInt(document.getElementById("width").value, 10);
var text;
if (number < "96") {
text = parseFloat(0);
} else if (number < "192") {
text = parseFloat(3);
} else {
text = parseFloat(6);
}
document.getElementById("largequantity").innerHTML = parseFloat(text) * parseFloat(quantity);