我正在尝试使用Javascript制作一个小型计算器,但这两个数字不会被添加或减去,它只会被连接起来,例如,如果我想添加2 + 2它的输出" 22"不是4.,这是代码:
<!DOCTYPE html>
<html>
<head>
<title>Hello!</title>
</head>
<script>
function getResult()
{
var result1 = document.getElementById("number1").value;
var result3 = document.getElementById ("op1").value;
var result2 = document.getElementById("number2").value;
calculate (result1,result3,result2);
}
function calculate(num1,operator,num2)
{
if (operator== '+')
{
var res1 = num1+num2;
alert(res1);
}
else if (operator== '-')
{
var res2 = num1-num2;
alert(res2);
}
else if (operator== '*')
{
var res3 = num1*num2;
alert(res3);
}
else if (operator== '/')
{
var res4 = num1/num2;
alert(res4);
}
else
{
alert("Nothing from above!");
}
}
</script>
<body>
<form action="get" method="#">
<input type="text" name="text1" value="" id="number1" />
<input type="text" name="text2" value="" id="number2" /> <br />
<input type="button" name="o1" value="+" id="op1" onclick="getResult();"/>
<input type="button" name="o2" value="-" id="op2" onclick="getResult();"/>
<input type="button" name="o3" value="*" id="op3" onclick="getResult();"/>
<input type="button" name="o4" value="/" id="op4" onclick="getResult();"/>
<input type="button" name="calc" value="Calculate" onclick="getResult();"/>
</form>
</body>
</html>
答案 0 :(得分:1)
在JavaScript(以及许多其他编程语言)中,当您将两个字符串一起添加时,您可以获得其值的串联。目前,您的程序将表单输入视为字符串,但您可以使用内置函数parseInt
从字符串中提取整数。
尝试以下方法:
function getResult() {
var result1 = parseInt(document.getElementById("number1").value);
var result3 = parseInt(document.getElementById ("op1").value);
var result2 = parseInt(document.getElementById("number2").value);
calculate (result1,result3,result2);
}
答案 1 :(得分:0)
应用parseFloat,示例
var res1 = parseFloat(num1)+parseFloat(num2);
答案 2 :(得分:0)
这是因为字符串连接。请将代码更改为var res1 = parseInt(num1) + parseInt(num2);
答案 3 :(得分:0)
在使用它们进行任何数学运算之前,您必须将变量转换为整数。默认情况下,它们以字符串形式读入。 result1 = parseInt(result1)