如何保持数字输入作为数字数据类型

时间:2018-08-30 07:47:09

标签: javascript string numbers

let a = prompt ("Input value of 'a'", );
let b = prompt ("Input value of 'b'", );

alert(a);
alert(b);
alert(a + b);

Number(a);
Number(b);

if ( a + b < 4){
    result = 'Below';
} else {
    result = 'Over';
}

alert (result);

因此,我正在做一些javascript练习,并且遇到了上述问题。

输出,例如a = 1,b = 2,而不是a + b = 3,结果是a + b = 12。

我认为javascript会自动将数字识别为数字数据类型,尤其是在使用数学运算符的情况下。

我尝试过:

let a = prompt ("Input value of 'a'", Number());

专门将输入值转换为数字数据类型,但问题仍然存在,令人困惑。

在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

函数Number()正常工作,但是您的问题是您没有将值重新分配给变量。

您需要像这样分配它:{​​{1}}。这应该是您的代码:

a = Number(a)

答案 1 :(得分:0)

您将ab作为字符串,因此a+b将附加到字符串。

首先,您需要将其转换为数字,然后执行+操作。

    let a = prompt ("Input value of 'a'", );
    let b = prompt ("Input value of 'b'", );

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

    alert(a);
    alert(b);
    alert(a + b);

    if ( a + b < 4){
        result = 'Below';
    } else {
        result = 'Over';
    }

   alert (result);

工作演示在这里:

let a = "1" // value from prompt
let b = "2" // value from prompt

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

console.log(a);
console.log(b);
console.log(a + b);

if (a + b < 4) {
  result = 'Below';
} else {
  result = 'Over';
}

console.log(result);

它将起作用。

注意:

与其使用多个警报,不如使用console.log()更好地显示/测试值,这是一个好习惯。