Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript计算器5+;5 = 55?_Javascript_Calculator - Fatal编程技术网

javascript计算器5+;5 = 55?

javascript计算器5+;5 = 55?,javascript,calculator,Javascript,Calculator,嘿,我做了一个javascript计算器,想试试5+5,它给我55,然后10?如果我尝试5/5,它会给我1罚款如果我尝试5-5,它会给我0罚款,而当我不理解代码的问题时,它也会给我0罚款,我还想尝试console.log它不起作用,所以我使用document.write 这是我的密码 var Plus = function() { var N1 = prompt("Enter first number"); var N2 = prompt("Enter second number

嘿,我做了一个javascript计算器,想试试5+5,它给我55,然后10?如果我尝试5/5,它会给我1罚款如果我尝试5-5,它会给我0罚款,而当我不理解代码的问题时,它也会给我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?");
                }
            }
        }
    }

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

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

var N1 = Number(prompt("Enter first number"));

提示符获取输入的字符串格式,您需要将其转换为整数进行整数添加操作。

此操作适用于其他运算符但不适用于加号的原因是“a”+“b”=“ab”

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

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

var sum = (parseInt(N1,10) + parseInt(N2,10));

var总和=(+N1++N2);或者var sum=(1.0*N1+1.0*N2)您应该将基数参数传递给
parseInt
parseInt(N1,10)
。否则,某些浏览器可能会将带前导零的数字解释为八进制。@Blender:Good call。。。我以前从未遇到过这种情况,但我只是调查了一下以证实这一点。