javascript(+)符号连接而不是给予总和?

时间:2017-08-23 13:00:49

标签: javascript html

我创建了一个简单的程序,使两个数字的总和但是... 该程序正在连接,这是如此令人困惑! 有人可以帮忙吗?



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;
&#13;
&#13;

7 个答案:

答案 0 :(得分:9)

value为您提供String,因此String连接。考虑将其解析为整数

 var sum = parseInt(numberOne) + parseInt(numberTwo);

http://jsfiddle.net/yb8r1wnw/2/

答案 1 :(得分:2)

您的numberOnenumberTwo是字符串,因此当使用带有两个字符串的+符号时,您会得到连接字符串。 首先解析数字,然后求和。您可以使用parseInt()parseFloat()函数。

&#13;
&#13;
var numberOne = '7';
var numberTwo = '8';

var sum = numberOne + numberTwo;
console.log(sum);

sum = parseFloat(numberOne) + parseFloat(numberTwo);
console.log(sum);
&#13;
&#13;
&#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(),检查以下内容

&#13;
&#13;
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;
&#13;
&#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