search

Home  >  Q&A  >  body text

Adding two numbers concatenates them instead of calculating the sum

I'm adding two numbers but I'm not getting the correct value.

For example, executing 1 2 returns 12 instead of 3

What am I doing wrong in this code?


function myFunction() {
  var y = document.getElementById("txt1").value;
  var z = document.getElementById("txt2").value;
  var x = y + z;
  document.getElementById("demo").innerHTML = x;
}
<p>
  Click the button to calculate x.
  <button onclick="myFunction()">Try it</button>
</p>
<p>
  Enter first number:
  <input type="text" id="txt1" name="text1" value="1">
  Enter second number:
  <input type="text" id="txt2" name="text2" value="2">
</p>
<p id="demo"></p>


P粉136356287P粉136356287416 days ago699

reply all(2)I'll reply

  • P粉023326773

    P粉0233267732023-10-11 14:35:13

    I just use Number():

    var i=2;  
    var j=3;  
    var k = Number(i) + Number(j); // 5

    reply
    0
  • P粉761718546

    P粉7617185462023-10-11 11:39:36

    They are actually strings, not numbers. The easiest way to generate a number from a string is to prepend it with :

    var x = +y + +z;

    reply
    0
  • Cancelreply