【问题标题】:Add Operation with numbers用数字添加操作
【发布时间】:2017-11-12 12:45:33
【问题描述】:

为了练习,我编写了这段代码作为计算器的一部分。它主要按预期工作。

但是,加法运算将两个数字连接起来,而不是将它们相加。为什么?

function calcApp (aNumber, bNumber) {
    var a = prompt("Enter A number :");
    var b = prompt("Enter B number :");
    var mathSign = prompt("Enter Math Sign :");

    aNumber = a;
    bNumber = b;

    if (mathSign == "+") {
        alert(a + b);
    }
    else if (mathSign == "-") {
        alert(a - b);
    }
    else if (mathSign == "*") {
        alert(a * b);
    }
    else if (mathSign == "/") {
        alert(a / b);
    }
    else {
        prompt("Enter a valid Math sign!!")
    }
}
calcApp();

【问题讨论】:

  • 将它们解析为整数。 pareseInt
  • 未使用定义的变量aNumberbNumber
  • 很可能是因为它们不是数字而是字符串?

标签: javascript concatenation addition


【解决方案1】:

prompt 返回一个字符串。当您对字符串使用 + 运算符时,它们会被连接起来。

你必须得到用户输入的数值。您可以通过多种不同的方式做到这一点:

var str = '5.4';

console.log(parseInt(str, 10)); // parse integer from decimal numeric string
console.log(parseFloat(str));
console.log(+str);
console.log(Number(str));

【讨论】:

  • 请将基数添加到parseInt,因为假设的八进制数带有前导零。
【解决方案2】:

prompt 将返回一个字符串。您需要将其转换为数字。

您可以使用Number 对象将字符串转换为数字。

如果您使用的是Number 对象,请检查NaN(非数字)。例如,Number('55 abc') 返回NaN

使用parseInt 时要小心,它会去除十进制数字。例如,parseInt('12.99') 返回12

这是您使用 Number 对象更新的代码,

function calcApp (aNumber, bNumber) {
    var a = prompt("Enter A number :");
    var b = prompt("Enter B number :");
    var mathSign = prompt("Enter Math Sign :");

    aNumber = a;
    bNumber = b;

    //Convert to number
    a = Number(a); <----------
    b = Number(b); <----------

    if (mathSign == "+") {
        alert(a + b);
    }
    else if (mathSign == "-") {
        alert(a - b);
    }
    else if (mathSign == "*") {
        alert(a * b);
    }
    else if (mathSign == "/") {
        alert(a / b);
    }
    else {
        prompt("Enter a valid Math sign!!")
    }
}
calcApp();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2020-07-22
    • 2013-03-01
    相关资源
    最近更新 更多