我创建了一个简单的程序,使两个数字的总和但是... 该程序正在连接,这是如此令人困惑! 有人可以帮忙吗?
function calculate() {
var numberOne = document.querySelector(".first").value;
var numberTwo = document.querySelector(".second").value;
var sum = numberOne + numberTwo;
document.querySelector(".result").innerHTML = "The sum of the two numbers is : " + sum;
}

<!doctype html>
<html>
<body>
<p>Calculate sum of two numbers !</p>
Enter 1rst Number:<br>
<input type="number" class="first" placeholder=""><br><br> Enter 2nd Number:<br>
<input type="number" class="second" placeholder=""><br><br>
<input type="button" onclick="calculate()" value="calculate">
<p class="result"></p>
</body>
</html>
&#13;
答案 0 :(得分:9)
value为您提供String,因此String连接。考虑将其解析为整数
var sum = parseInt(numberOne) + parseInt(numberTwo);
答案 1 :(得分:2)
您的numberOne
和numberTwo
是字符串,因此当使用带有两个字符串的+
符号时,您会得到连接字符串。
首先解析数字,然后求和。您可以使用parseInt()和parseFloat()函数。
var numberOne = '7';
var numberTwo = '8';
var sum = numberOne + numberTwo;
console.log(sum);
sum = parseFloat(numberOne) + parseFloat(numberTwo);
console.log(sum);
&#13;
答案 2 :(得分:2)
Javascript默认将dom元素作为字符串。要进行数学计算,需要将其类型化为整数/浮点数或转换为数字。
parseInt(number) = number, truncates after decimal value
parseFloat(number) = number with decimal values
Number(number) = number with or without decimal
答案 3 :(得分:1)
使用parseInt()
,检查以下内容
function calculate() {
var numberOne = document.querySelector(".first").value;
var numberTwo = document.querySelector(".second").value;
var sum = parseInt(numberOne) + parseInt(numberTwo);
document.querySelector(".result").innerHTML = "The sum of the two numbers is : " + sum;
}
&#13;
<p>Calculate sum of two numbers !</p>
Enter 1rst Number:<br>
<input type="number" class="first" placeholder=""><br><br>
Enter 2nd Number:<br>
<input type="number" class="second" placeholder=""><br><br>
<input type="button" onclick="calculate()" value="calculate">
<p class="result"></p>
&#13;
答案 4 :(得分:0)
这只是因为值返回字符串。因此,sum操作以串联结束。 你需要转换这两个值。
用户代码
var sum = parseFloat(numberOne) + parseFloat(numberTwo);
答案 5 :(得分:0)
谁在Salesforce中使用javascript,请确保
var a= 8 ;
var b =8 ;
var c = a+b;
这将使u结果输出= 88; 它只会串联。如果要添加这两个: 您应该将逻辑写为:
var a = 8;
var b = 8
var c = parseInt(a)+ parseInt(b);
这将为您提供16的理想结果,与乘法相同。
希望这会有所帮助。
答案 6 :(得分:0)
示例,您可以使用此:
var numberOne:number = +document.querySelector(".first").value;
var numberTwo:number = +document.querySelector(".second").value;
var sum = numberOne + numberTwo;
您应该使用+
Angular typeScript