如何添加两个数字?

时间:2013-04-30 05:08:34

标签: javascript

我写了一个JavaScript计算器......但是假设当我将第一个数字设为2而第二个数字设为3时,结果显示为23,但我想添加两个数字。

任何人都可以帮助我吗?当我试图减去这两个数字时也会发生这种情况。为什么这不起作用?

var cal = prompt("Please enter what type of calculation you want to do\n
if you wanna add enter = 1\n
if you want to minus enter = 2\n
if you want to divide enter = 3\n
if you want to multiply enter = 4");

if (cal == 1) {
    var a = prompt("Please enter your first number");
    var b = prompt("please enter your second number");

    alert("The result is , " + a+b);
}

if (cal == 2) {
    var c = prompt("Please enter your first number");
    var d = prompt("please enter your second number");

    alert("the result is , " + c - d);
}

11 个答案:

答案 0 :(得分:3)

试试这个:

var cal = prompt("Please enter what type of calculation you want to do\n" +
  "if you want to add enter = 1\n" +
  "if you want to minus enter = 2\n" +
  "if you want to divide enter = 3\n" +
  "if you want to multiply enter = 4");

if (cal == 1) {
    var a = prompt("Please enter your first number");
    var b = prompt("please enter your second number");

    alert("The result is , " + (Number(a) + Number(b)));
}

else if (cal == 2) {
    var c = prompt("Please enter your first number");
    var d = prompt("please enter your second number");

    alert("the result is , " + (Number(c) - Number(d)));
}

答案 1 :(得分:1)

+符号用于将字符串连接在一起,而不是以数学方式将它们连接在一起。

您需要将变量包装在parseInt()中,例如

alert("The result is , " + parseInt(a)+parseInt(b));

答案 2 :(得分:1)

从用户接受后将字符串转换为数字:

a = parseInt(a, 10);

答案 3 :(得分:1)

提示返回字符串,你需要将它们解析为整数(你也可以使用parseFloat进行浮动)

alert("The result is , " + (parseInt(a) + parseInt(b)));

答案 4 :(得分:1)

Prompt方法将输入的值作为字符串返回。

所以在Prompt使用parseInt()之后,此函数会解析一个字符串并返回一个整数。

答案 5 :(得分:1)

二进制 + operator有两个用途:添加和字符串连接。虽然你想要前者,但后者正在发生,因为window.prompt()返回一个字符串。

为避免这种情况,您应该执行以下操作之一(阅读文档以便了解其中的差异):

在尝试使用它们进行计算之前,检查数字是否可以被解析(使用isNaN(num)或可能num === num)是明智的,因此您的脚本可以显示有用的错误消息而不仅仅是将NaN传递到其输出。

答案 6 :(得分:0)

您正在添加到Strings;称为连接,您需要convert the String representations to numbers然后添加它们。

alert("The result is , " + (parseInt(a) + parseInt(b)));

答案 7 :(得分:0)

使用

alert("The result is , " + (parseFloat(a)+parseFloat(b)));

答案 8 :(得分:0)

我认为这是因为var是动态类型变量,因此您的变量转换为字符串。

请注意,该功能可能会收到双倍,因此parseInt可能无法正常工作

function Add(a,b)
{
   var result = null;

   if (isNaN(a) || isNaN(b))
   {
      alert("Please send the number");
      return;
   }

   a = Number(a);
   b= Number(b);

   return a+b;
}

答案 9 :(得分:0)

使用:

var add = parseFloat(a)+parseFloat(b);

答案 10 :(得分:0)

num1 = window.prompt("Please Enter Your Num1 :");
num2 = window.prompt("Please Enter Your Num2 :");
var sum = parseInt(num1)+ parseInt(num2);
document.writeln("<h1> The summ of two integers,"+num1+", and,"+num2+", is ,"+sum+",</h1>"  )

我希望这会对你有所帮助。