3

嘿,我做了一个 javascript 计算器,想要尝试 5 + 5 它给我 55 其他然后 10?但是,如果我尝试 5 / 5 它会给我 1 罚款,如果我尝试 5 - 5 它会给我 0 罚款,并且与时间相同我不理解我的代码的问题也想尝试 console.log 它没有工作,所以我使用 document.write

这是我的代码

var Plus = function()
{
    var N1 = prompt("Enter first number");
    var N2 = prompt("Enter second number");
    var sum = (N1 + N2);
    document.write(sum);
} 

var Minus = function()
{
    var N1 = prompt("Enter first number");
    var N2 = prompt("Enter second number");
    var sum = (N1 - N2);
    document.write(sum);
}

var Division = function()
{
    var N1 = prompt("Enter first number");
    var N2 = prompt("Enter second number");
    var sum = (N1 / N2);
    document.write(sum);
}

var Times = function()
{
    var N1 = prompt("Enter first number");
    var N2 = prompt("Enter second number");
    var sum = (N1 * N2);
    document.write(sum);
}

var Answer = prompt("Plus ?, Minus ?, Division ? or Times ?");

    if( Answer === "Plus")
    {
        Plus();
    }
    else
    {
        if( Answer === "Minus")
        {
            Minus();
        }
        else
        {
            if( Answer === "Division")
            {
                Division();
            }
            else
            {
                if( Answer === "Times")
                {
                    Times();
                }
                else
                {
                    document.write("How did you get here?");
                }
            }
        }
    }
4

3 回答 3

5

N1并且N2是字符串,而不是数字。将两个字符串加在一起会将它们连接起来,这就是您的“错误”。

您需要将它们解析为数字:

var N1 = Number(prompt("Enter first number"));
于 2013-07-06T01:56:37.193 回答
2

这适用于其他运算符但不适用于加号的原因是因为“a”+“b”=“ab”。

也就是说,您正在添加字符串。所以“5”+“5”=“55”

如果您首先将它们转换为整数,它应该可以解决这个问题。

var sum = (parseInt(N1,10) + parseInt(N2,10));
于 2013-07-06T01:57:31.083 回答
1

Prompt为您获取 input 的字符串格式,您需要将其转换为整数以进行整数加法运算。

于 2013-07-06T01:56:39.533 回答