当我在代码中使用大于或小于符号(< >
)时,它会返回错误的结果 - 例如,当我输入2和10时,它返回2更大而10更小!
我知道我可以使用Math.max(a,b)
然后它返回正确的结果但我想知道:为什么它会返回错误的结果?我错了吗?
请为我解释一下。谢谢。 (;
以下是代码:
<!DOCTYPE html>
<html>
<head>
<title>showing the bigger an smaller number</title>
<meta charset="utf-8">
<script>
function b(){
var a=document.getElementById("a").value;
var b=document.getElementById("b").value;
if (a>b){document.getElementById("o").innerHTML="a is bigger : "+a}
else {if (a<b){document.getElementById("o").innerHTML="b is bigger : "+b}}
}
function k(){
var a=document.getElementById("a").value;
var b=document.getElementById("b").value;
if (a>b){document.getElementById("o").innerHTML="b is smaller : "+b}
else {if (a<b){document.getElementById("o").innerHTML="a is smaller : "+a}}
}
</script>
<style>
small {
font-family:"Comic Sans MS", cursive;
color:#666;
}
input {
height:30px;
width:175px;
}
</style>
</head>
<body>
<input type="number" id="a" placeholder="type first Number here"></input><b> </b>
<input type="number" id="b" placeholder="type second number here"></input>
<br>
<button onClick="b();">show me the bigger Number</button>
<button onclick="k();">show me the smaller Number</button>
<br><b></b>
<br><small id="o"> </small>
</body>
</html>
对不起,如果我的英语不好。
答案 0 :(得分:4)
尝试将值解析为浮点数。目前,您正在比较字符串:
var a = parseFloat(document.getElementById("a").value),
b = parseFloat(document.getElementById("b").value);
当然,如果用户输入的内容不是有效的数值,这会导致问题......
答案 1 :(得分:1)
您可以使用!=
(不相等)或!==
(不相同)关系运算符代替<>
。
答案 2 :(得分:-2)
与HTML混合的代码中的<
和>
通常会带来麻烦,因为这些是html的特殊字符。最好将脚本移动到单独的文件中,并从html链接到它。