因此,我的代码允许用户输入两个数字,num1
和num2
。但是,加法功能是连接数字而不是相加。我该如何解决?
以下是该函数的代码段:
var sum= num1 + num2;
alert(`Sum of ${num1} and ${num2} is ${sum}`);
答案 0 :(得分:0)
value
的类型为 string 。这就是字符串串联发生的原因。要执行算术运算,必须将值转换为数字。
更改
var sum= num1 + num2;
收件人
var sum= Number(num1) + Number(num2);
答案 1 :(得分:0)
您需要将字符串转换为数字,+
符号是连接字符串,下面是示例
var sum= Number(num1) + Number(num2);
alert(`Sum of ${num1} and ${num2} is ${sum}`); // Sum of 1 and 2 is 3
或
var sum= +num1 + +num2;
alert(`Sum of ${num1} and ${num2} is ${sum}`); // Sum of 1 and 2 is 3
答案 2 :(得分:0)
这是因为即使输入类型是数字,该值也将以字符串的形式出现,而不是将其相加,而是将这些值浓缩起来。在添加之前将它们转换为数字。
var sum = Number(num1) + Number(num2);
alert(`Sum of ${num1} and ${num2} is ${sum}`);
答案 3 :(得分:0)
您可以将其强制为字符串并使用"" + num1 + num2
var sum = "" + num1 + num2;
alert('Sum of ${num1} and ${num2} is ${sum}');
答案 4 :(得分:0)
另一个想法是使用parseInt()
const sum = parseInt(num1) + parseInt(num2)
console.log(`Sum of ${num1} and ${num2} is ${sum}`)
这里是工作代码
let num1 = 50
let num2 = "5" //in case of string value the value will be converted by parseInt()
const sum = parseInt(num1) + parseInt(num2)
console.log(`Sum of ${num1} and ${num2} is ${sum}`)