gpt4 book ai didi

Javascript 数字比较失败

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:21 26 4
gpt4 key购买 nike

我试图了解我的错误在哪里,因为 JS 不可能在数学上不及格!

在 HTML 表单上,我有一个选择和 9 个文本输入。然后,在 JS 上我比较输入的文本。

我的问题如下:如果我写在

new_da3 = 1400
new_a3 = 1900

JS 会说 ok3。

如果我写在

new_da3 = 1900
new_a3 = 1400

JS 会说不!

但是如果我写在

new_da3 = 1500
new_a3 = 800

JS 会说 ok3!

为什么? 1500 不是比 800 大吗?

谢谢!

HTML:

 <form>
<select id="new_nrp" onchange="selNrP(this.value);" style="background-color:#F00; color:#FFF">
<option value="" selected="selected"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<?php
for($i=1; $i<=3; $i++){
print '<input type="text" size="5" maxlength="5" id="new_da'.$i.'">
<input type="text" size="5" maxlength="5" id="new_a'.$i.'">';

}
?>

<input type="submit" class="buttongreen" onClick="test()" value="Try the test function!">
</form>

JS

function test(){
var new_da1 = document.getElementById('new_da1').value
var new_a1 = document.getElementById('new_a1').value
var new_da2 = document.getElementById('new_da2').value
var new_a2 = document.getElementById('new_a2').value
var new_da3 = document.getElementById('new_da3').value
var new_a3 = document.getElementById('new_a3').value

var new_nrp = document.getElementById('new_nrp').value

switch(new_nrp){
case '3':
if(new_a2 < new_da3 && new_da3 <= new_a3){
alert('ok3')
} else {
alert('no3')
return
}
case '2':
if(new_a1 < new_da2 && new_da2 <= new_a2){
alert('ok2')
} else {
alert('no2')
return
}
case '1':
if(new_da1 <= new_a1){
alert('ok1')
} else {
alert('no1')
return
}
break;
default:
alert("Why are you here?");
return;
}

}

最佳答案

因为您比较的是字符串,而不是整数。使用 parseInt 将您的值显式转换为整数。

这基本上就是您正在做的事情: jsFiddle example

要进行转换,请将您的变量更改为:

var new_da1 = parseInt( document.getElementById('new_da1').value, 10);

(假设它们都是整数)

关于Javascript 数字比较失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com