javascript (+) sign concatenates instead of giving sum?

后端 未结 7 501
旧巷少年郎
旧巷少年郎 2020-12-07 03:41

I created a simple program that make the sum of two numbers BUT.. the program is concatenating instead, This is so confusing! Can anyone help?

相关标签:
7条回答
  • 2020-12-07 04:18

    Use parseInt() for this, Check snippet below

    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;
      }
     <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>

    0 讨论(0)
  • 2020-12-07 04:18

    Example , you can use this:

    var numberOne:number = +document.querySelector(".first").value;
    var numberTwo:number = +document.querySelector(".second").value;
    var sum = numberOne + numberTwo;
    

    You should use + Angular typeScript

    0 讨论(0)
  • 2020-12-07 04:25

    Javascript takes dom elements as string only by default. To make mathematical calculation, you need to typecast it to integer/float or convert to number.

    parseInt(number) = number, truncates after decimal value
    parseFloat(number) = number with decimal values
    Number(number) = number with or without decimal
    
    0 讨论(0)
  • 2020-12-07 04:30

    It's just because value returns with string. So sum operation ends with concatenation. you need to convert both those values.

    user below code

     var sum = parseFloat(numberOne) + parseFloat(numberTwo);
    
    0 讨论(0)
  • 2020-12-07 04:31

    Your numberOne and numberTwo are strings, so you get concatenated strings when use + sign with two string. Parse first to numbers then sum them. You can use parseInt() and parseFloat() functions for it.

    var numberOne = '7';
    var numberTwo = '8';
    
    var sum = numberOne + numberTwo;
    console.log(sum);
    
    sum = parseFloat(numberOne) + parseFloat(numberTwo);
    console.log(sum);

    0 讨论(0)
  • 2020-12-07 04:37

    Who are using javascript in salesforce make sure

    var a= 8 ;
    var b =8 ;
    var c = a+b;
    

    This will give u result output = 88; It is will just concatenate. If you want to add those two: You should write logic as :

    var a = 8;
    var b = 8
    var c = parseInt(a)+ parseInt(b);
    

    This will give you the desired result of 16 , The same is the case with multiplication.

    Hope this helps.

    0 讨论(0)
提交回复
热议问题