我之所以做计算器是因为我很无聊,并且遇到一个问题,当我尝试执行“ x + y”(x = 4且y = 2)时,我得到的是42而不是6,有人可以请解释一下? (我正在使用Edge)
这是JS:
function myFunction1() {
var x = document.getElementById("myText1").value;
var y = document.getElementById("myText2").value;
var z = document.getElementById("myText3").value;
var a = x + y;
if (z == "+") {
document.getElementById("demo3").innerHTML = a;
}
if (z == "-") {
document.getElementById("demo3").innerHTML = x - y;
}
if (z == "*") {
document.getElementById("demo3").innerHTML = x * y;
}
if (z == "/") {
document.getElementById("demo3").innerHTML = x / y;
}
}
HTML:
<p>Your Problem:<br/><br/>
<input name="myText" id="myText1" type="text" size="7"> <input name="myText" id="myText3" type="text" maxlength="1" size="1"> <input name="myText" id="myText2" type="text" size="7"> = <span id="demo3"></span>
</p>
<p>
<button onclick="myFunction1()">Calculate</button>
</p>
和页面/结果:
这是因为您正在尝试将字符串添加在一起。您需要使用parseInt
来获取字符串的数字部分。有关parseInt
here的更多信息。
function myFunction1() {
var x = parseInt(document.getElementById("myText1").value);
var y = parseInt(document.getElementById("myText2").value);
var z = document.getElementById("myText3").value;
var a = x + y;
if (z == "+") {
document.getElementById("demo3").innerHTML = a;
}
if (z == "-") {
document.getElementById("demo3").innerHTML = x - y;
}
if (z == "*") {
document.getElementById("demo3").innerHTML = x * y;
}
if (z == "/") {
document.getElementById("demo3").innerHTML = x / y;
}
}