【问题标题】:Cant get sum of two number in javascrit [duplicate]无法在javascript中得到两个数字的总和[重复]
【发布时间】:2021-06-15 08:23:49
【问题描述】:

在我的代码中可以添加数字数组并在文本字段中显示结果,但是在我添加新数字并尝试获取数组中数字的总和后,它会连接(例如 5+5=10,但它返回 5+5=55 )。 这是我第一次接触这个问题,我该如何处理? 请看代码:

<!DOCTYPE html>
<html>
<head>
  <title>Title of the document</title>
  <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
  <input type="text" id="n1"/><br/><br/>
  <input type="text" id="n2"/><br/><br/>
  <button id="buttoni">Get Aray Sum</button>
  <button id="buttona">Add Array</button>
  <p id="pText"></p>
</body>
 <script>
        let btnGet = document.getElementById("buttoni");
        let result = document.getElementById("n2");
        
        let numbers =  [];

        document.getElementById("buttona").onclick = function pushData()
            {
                // get value from the input text
                var inputText = document.getElementById('n1').value;
                
                // append data to the array
                numbers.push(inputText);
                
                var pval = "";
                
                for(i = 0; i < numbers.length; i++)
                {
                    pval = pval + numbers[i] + "<br/>";
                }
                // display array data
                document.getElementById('pText').innerHTML = pval;
            };
            let numo = numbers;
            btnGet.addEventListener('click', () => {
            result.value = numo.reduce((total, current) =>  total += current);
        });
  </script>
</html>

【问题讨论】:

    标签: javascript html arrays sum


    【解决方案1】:

    首先将其转换为整数。 parseInt(value);

    Javascript 认为它是一个字符串,所以它就像任何其他字符串一样添加它(“5”+“5”将是 55 而 5+5 或 parseInt("5") + parseInt("5") 将是 10 )

    将第 24 行替换为 var inputText = parseInt(document.getElementById('n1').value); 或将第 27 行替换为 numbers.push(parseInt(inputText));

    【讨论】:

    • 您也可以使用 Number(inputText) 来支持小数值;) ParseInt 将错误数字,如 1.3 等,而 Number 会将其转换为浮点数。 ParseInt("1.3") + ParseInt ("1.3") = nan,而 Number(1.3) + Number(1.3) = 2.6
    • (你应该使用数字,除非你特别想使用整数)
    【解决方案2】:

    更改下一行

    numbers.push(inputText);
    

    numbers.push(parseInt(inputText));
    

    【讨论】:

    • 谢谢你们,成功了
    • 如果此解决方案有效,请接受并投票,这样可以帮助其他开发人员。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2013-04-22
    • 2016-08-15
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    相关资源
    最近更新 更多