我有这个HTML:
<input type='number' id='length' step='0.1' min='0'; max='5'>Length
和这个Javascript
num=document.getElementById('length').value;
if(num==1 || 2 || 3 || 4|| 5){
num='0'+num;
}
我的问题是这样的:虽然我只希望括号内的代码执行,如果输入的数字是整数,它也会在检测到0.8或其他小数时激活。任何想法为什么?我如何解决它?感谢。
答案 0 :(得分:6)
要确保ifstream brightness_file(BRIGHTNESS_FILE);
是一个整数,而不必定义所有可能性,请使用:
num
答案 1 :(得分:2)
为什么:
num==1 || 2 || 3 || 4|| 5
等于:
(num==1) || 2 || 3 || 4|| 5
因此如果num
为"1"
(始终为字符串类型),则表达式返回true
,否则为2
(也是 truthy 值),最终你的if
语句总是成功。
如何解决:
// implicitly converts the string type into number type before comparison
// returns true if it is an integer-like string
num == Math.floor(num)
所以你可以这样做:
if (num == Math.floor(num) && num > 0 && num < 6) {
// an integer-like string that meets the requirement [1, 5]
}
但请记住,num
现在仍然是 string
类型。如果您想要number
,请执行:
num = +num
答案 2 :(得分:1)
你应该做
@Override
public void actionPerformed(ActionEvent e)
{
submitAction(); // doesn't look like ActionEvent needs to be a parameter.
}
错误 - 否则它会将2与2进行比较,并表示对于最后的4&#39;如果&#39;参数。
CORRECTO - JS中的任何数字都被认为是真的。
答案 3 :(得分:0)
你必须编辑&#34;如果&#34;循环:
if (num == 1 || num == 2 || num == 3 || num == 4 || num == 5)