javascript - 将两个数字相加,得到 5+10 = 510 而不是 15

标签 javascript web calculator

我刚刚开始学习 JavaScript,我正在摆弄一些代码,但我似乎找不到一种方法来真正将两个变量相加并计算它们的总和。我声明了 3 个变量,其中一个变量设置为答案,另外 2 个变量设置为两个数字。所以基本上是 a、b、c,其中 c = (a + b)。但是,每当我尝试运行代码时,结果都会以“ab”而不是“a + b”结束,因此如果 a = 5 且 b = 10,它会显示“510”而不是“15”。

所有其他符号(如“-”、“/”和“*”)都按预期工作,唯一不起作用的是“+”。

我认为计算机认为我正在尝试打印出两个字符串,但我想将它们相加,就像您在发出警报时所做的那样,例如: alert("Hello World"+ a) ;

我的思考方向正确还是问题出在其他方面?这是源代码:

function addTwoNumbers(firstNumber,secondNumber,numberAdded){
    if(numberAdded == '+'){
        numberAdded = (firstNumber + secondNumber);
        alert("The summ of the two numbers is equal to: " + numberAdded);
    }
    else if(numberAdded == '-'){
        numberAdded = (firstNumber - secondNumber);
        alert("The difference of the two numbers is equal to: " + numberAdded);
    }
    else if(numberAdded == '/')
    {
        numberAdded = (firstNumber / secondNumber);
        alert("The 'kvot' of the two numbers is equal to: " + numberAdded);
    }
    else if(numberAdded == '*'){
        numberAdded = (firstNumber * secondNumber);
        alert("The product of the two numbers is equal to: " + numberAdded);
    }
    else
    {
        alert("I told you to use '+, -, / and *' not anything else!");
    }
}

var checker = true;

while(checker == true){
    alert("You will now be prompted to enter two numbers.");
    var firstNumber = prompt("Please enter the first number.");
    var secondNumber = prompt("Please enter the second number.");
    var numberAdded = prompt("Would you like to use '+, -, /, or * ?'");
    checker = false;

    addTwoNumbers(firstNumber, secondNumber, numberAdded);
    if(numberAdded != '+' && numberAdded != '-' && numberAdded != '/' && numberAdded != '*'){
        checker = true;
    }

    option = 0;

    while(option != 'y' && option != 'n'){
        var option = prompt("Would you like to make a calculation again? (y/n)");
        if(option == 'y'){
            checker = true;
        }
        else if(option == 'n'){
            checker = false;
        }
        else{
            alert("I said (y/n), try again...");
        }

    }
}

最佳答案

prompt 函数返回一个字符串。因此,当您在两个字符串上使用 + 运算符时,您将它们组合在一起。相反,将数字字符串解析为数字:

var firstNumber = parseInt(prompt("Please enter the first number."), 10);
var secondNumber = parseInt(prompt("Please enter the second number."), 10);

关于javascript - 将两个数字相加,得到 5+10 = 510 而不是 15,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29156240/

相关文章:

html - 如何更改或更新 angular ag-grid 的主题。我们是否需要编写任何自定义 css 文件或使用除 Material 之外的任何其他网格

html - 如何使导航菜单保持原位

java - 在 Java 中将 '^' 更改为 Math.pow() 的简单代码

javascript - 如何制作数字轮循环?

javascript - 映射数组的数组

javascript - 防止ajax的多个请求

reactjs - React-reveal 仅在滚动停止时起作用 - chrome

仅使用 C 函数编写简单的 parking 费计算器

javascript - 为什么我的按钮在我点击时不隐藏文本区域

javascript - 添加要在 Android Studio 应用程序中运行的 java 程序