我在过去几天一直试图解决这个问题:当我通过提示减去,乘以或除2输入数字时,一切正常;但是当我想要添加它们时,我只能将两个数字简单地写在一起。
示例:如果我添加5和6,我得到56 !!
这是我正在使用的代码。
var a = prompt("Enter first number");
var b = prompt("Enter second number");
alert(a + b);
我做错了什么?我是否必须指定值类型?
答案 0 :(得分:7)
函数prompt
返回一个字符串,+
(不明智地)用于 字符串连接和数字添加。
您没有在JavaScript中“指定类型”,但可以在运行时执行字符串到数字转换。有很多方法可以做到这一点。最简单的是:
var a = +prompt("Enter first number");
var b = +prompt("Enter second number");
alert(a + b);
但你也可以
var a = Number(prompt("Enter first number"));
var b = Number(prompt("Enter second number"));
alert(a + b);
(避免parseInt
,因为它只处理前导字符,不会添加4.5和2.6之类的数字。)
答案 1 :(得分:0)
问题是JavaScript的输入是松散的。所以,它并不知道" 5"实际上,因为你从提示中收到的所有东西都是String。
你可以这样做:
var a = prompt("1st") * 1;
var b = prompt("2nd") * 1;
alert (a + b);
这是有效的,因为*运算符强制所有内容都像数字一样。
答案 2 :(得分:0)
您正在使用连接操作而不是算术运算符。
在上面的代码中:
alert(a + b);
您的浏览器编译器会将其视为连接。所以它结合了两个字符串。这就是你得到那个输出的原因。
答案 3 :(得分:0)
当你输入var a和var b时,变量可能是设置字符串(字符)而不是整数。
因此,当您使用a + b
时,您可以将这些字符放在一起。
为了确保您输入的值保存为整数,您可以使用
parseInt()
例如:var a = parseInt( prompt("Enter first number") );
答案 4 :(得分:0)
试试这个,
var a = prompt("Enter first number");
var b = prompt("Enter second number");
var x=parseInt(a);
var y=parseInt(b);
alert(x+y);
答案 5 :(得分:0)
var a = parseInt(prompt("Enter first number"));
var b = parseInt(prompt("Enter second number"));
alert(a + b);
你在提示之前使用parseInt,因为如果你使用parseInt作为数字,它将作为字符串的输入。
答案 6 :(得分:0)
1)函数 prompt
返回一个字符串,'+'(不明智地,可能)用于字符串连接和数字添加。
var a = +prompt("Enter first number");
var b = +prompt("Enter second number");
alert(a + b);
2.)一些开发人员在提示之前使用parseInt
,但这不是很好的方法因为不添加像5.2,9.99等浮动数字
var a = parseInt(prompt("Enter first number"));
var b = parseInt(prompt("Enter second number"));
alert(a + b);
最好的方式
您可以使用其他不同的方法在提示符之前的提示框中添加数字Number
。
var a = Number(prompt("Enter first number"));
var b = Number(prompt("Enter second number"));
alert(a + b);
JavaScript松散耦合。
答案 7 :(得分:0)
using Microsoft.WindowsAzure.Storage;
这也可以将字符串转换为数字并发出警报。