【问题标题】:javascript (+) sign concatenates instead of giving sum?javascript(+)符号连接而不是给出总和?
【发布时间】:2017-08-23 13:00:49
【问题描述】:

我创建了一个简单的程序,可以将两个数字相加但是.. 程序改为连接,这太令人困惑了! 有人可以帮忙吗?

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>

【问题讨论】:

标签: javascript html


【解决方案1】:

这里value 给你一个字符串,因此是连接。尝试将其解析为数字:

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

请参阅demo fiddle

【讨论】:

    【解决方案2】:

    默认情况下,Javascript 仅将 dom 元素作为字符串。要进行数学计算,您需要将其类型转换为整数/浮点数或转换为数字。

    parseInt(number) = number, truncates after decimal value
    parseFloat(number) = number with decimal values
    Number(number) = number with or without decimal
    

    【讨论】:

      【解决方案3】:

      您的 numberOnenumberTwo 是字符串,因此当使用带有两个字符串的 + 符号时,您会得到串联的字符串。 首先解析为数字,然后将它们相加。您可以使用parseInt()parseFloat() 函数。

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

      【讨论】:

        【解决方案4】:

        为此使用parseInt(),检查下面的sn-p

        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>

        【讨论】:

          【解决方案5】:

          例如,你可以使用这个:

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

          你应该使用+Angular typeScript

          【讨论】:

          • 为我工作。 parseInt 没有。但后来我正在修复一个关于图像模式/滑块中的图像幻灯片索引的连接问题。
          【解决方案6】:

          这只是因为 value 以字符串返回。所以求和运算以连接结束。 您需要转换这两个值。

          代码下方的用户

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

          【讨论】:

            【解决方案7】:

            确定在 salesforce 中使用 javascript 的人员

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

            这会给你结果 output = 88; 它只会连接。如果要添加这两个: 你应该把逻辑写成:

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

            这会给你想要的结果 16 ,乘法也是如此。

            希望这会有所帮助。

            【讨论】:

              猜你喜欢
              • 2011-08-23
              • 1970-01-01
              • 2015-06-25
              • 2017-12-09
              • 2015-05-11
              • 1970-01-01
              • 1970-01-01
              • 2016-10-21
              相关资源
              最近更新 更多