我写了一个JavaScript计算器......但是假设当我将第一个数字设为2
而第二个数字设为3
时,结果显示为23
,但我想添加两个数字。
任何人都可以帮助我吗?当我试图减去这两个数字时也会发生这种情况。为什么这不起作用?
var cal = prompt("Please enter what type of calculation you want to do\n
if you wanna add enter = 1\n
if you want to minus enter = 2\n
if you want to divide enter = 3\n
if you want to multiply enter = 4");
if (cal == 1) {
var a = prompt("Please enter your first number");
var b = prompt("please enter your second number");
alert("The result is , " + a+b);
}
if (cal == 2) {
var c = prompt("Please enter your first number");
var d = prompt("please enter your second number");
alert("the result is , " + c - d);
}
答案 0 :(得分:3)
试试这个:
var cal = prompt("Please enter what type of calculation you want to do\n" +
"if you want to add enter = 1\n" +
"if you want to minus enter = 2\n" +
"if you want to divide enter = 3\n" +
"if you want to multiply enter = 4");
if (cal == 1) {
var a = prompt("Please enter your first number");
var b = prompt("please enter your second number");
alert("The result is , " + (Number(a) + Number(b)));
}
else if (cal == 2) {
var c = prompt("Please enter your first number");
var d = prompt("please enter your second number");
alert("the result is , " + (Number(c) - Number(d)));
}
答案 1 :(得分:1)
+
符号用于将字符串连接在一起,而不是以数学方式将它们连接在一起。
您需要将变量包装在parseInt()
中,例如
alert("The result is , " + parseInt(a)+parseInt(b));
答案 2 :(得分:1)
从用户接受后将字符串转换为数字:
a = parseInt(a, 10);
答案 3 :(得分:1)
提示返回字符串,你需要将它们解析为整数(你也可以使用parseFloat
进行浮动)
alert("The result is , " + (parseInt(a) + parseInt(b)));
答案 4 :(得分:1)
Prompt
方法将输入的值作为字符串返回。
所以在Prompt
使用parseInt()
之后,此函数会解析一个字符串并返回一个整数。
答案 5 :(得分:1)
二进制 +
operator有两个用途:添加和字符串连接。虽然你想要前者,但后者正在发生,因为window.prompt()
返回一个字符串。
为避免这种情况,您应该执行以下操作之一(阅读文档以便了解其中的差异):
parseInt(str, 10)
将字符串解析为整数。parseFloat(str)
将字符串解析为浮点数。+str
将字符串转换为数字。Number(str)
。在尝试使用它们进行计算之前,检查数字是否可以被解析(使用isNaN(num)
或可能num === num
)是明智的,因此您的脚本可以显示有用的错误消息而不仅仅是将NaN
传递到其输出。
答案 6 :(得分:0)
您正在添加到Strings;称为连接,您需要convert the String representations to numbers然后添加它们。
alert("The result is , " + (parseInt(a) + parseInt(b)));
答案 7 :(得分:0)
使用
alert("The result is , " + (parseFloat(a)+parseFloat(b)));
答案 8 :(得分:0)
我认为这是因为var是动态类型变量,因此您的变量转换为字符串。
请注意,该功能可能会收到双倍,因此parseInt
可能无法正常工作
function Add(a,b)
{
var result = null;
if (isNaN(a) || isNaN(b))
{
alert("Please send the number");
return;
}
a = Number(a);
b= Number(b);
return a+b;
}
答案 9 :(得分:0)
使用:
var add = parseFloat(a)+parseFloat(b);
答案 10 :(得分:0)
num1 = window.prompt("Please Enter Your Num1 :");
num2 = window.prompt("Please Enter Your Num2 :");
var sum = parseInt(num1)+ parseInt(num2);
document.writeln("<h1> The summ of two integers,"+num1+", and,"+num2+", is ,"+sum+",</h1>" )
我希望这会对你有所帮助。