JavaScript - 无法正确添加2个数字

时间:2014-10-10 22:02:57

标签: javascript html input numbers add

我正在使用Javascript模拟计算器。

用户可以在给定的文本框中输入2个数字,它将显示总和,产品,差异和除法。

这是我的功能 -

function calculate(num1, num2) {
  console.log("First Number = " + num1 + " Second Number = " + num2);
  console.log("Sum = " + (num1 + num2));
  console.log("Product =" + (num1 * num2));
  console.log("Difference = " + (num1 - num2));
  console.log("Division = " + (num1 / num2));
}

当用户输入第一个数字4和第二个数字3时,我得到这个结果:

First Number = 4 Second Number = 3
Sum = 43  // sum should be 7 NOT 43
Product = 12 
Difference = 1 
Division = 1.3333333333333333 

这里有什么问题吗?

4 个答案:

答案 0 :(得分:6)

因为+也是JavaScript中的String Concatinater。使用parseInt(var1)+ parseInt(var2)它将起作用。还看看---> Javascript Operators

理解+运算符。 感谢

答案 1 :(得分:2)

如果您在文本框中输入数字,则会将其视为字符串,因此+运算符将执行字符串连接。 *运算符与字符串无关,因此javascript引擎会尝试将输入解释为数字。

您可以在输入上使用parseInt将它们转换为数字,或使用html number输入类型。

答案 2 :(得分:1)

console.log("Sum = " + (parseInt(num1) + parseInt(num2)));

console.log("Sum = " + (0 + num1 + num2));

还要确保您正在调用

这样的功能
calculate(4, 3);

而不是

calculate('4', '3');

答案 3 :(得分:1)

您对calculate()的至少一个输入是字符串。 +是为字符串定义的,所以变为43.虽然* / - 没有为字符串定义而Javascript“巧妙地”将它们转换为int。