【问题标题】:Calculator doesn't add two numbers it just writes them together like"2+2=22" [duplicate]计算器不会将两个数字相加,它只是将它们写在一起,如“2+2=22”[重复]
【发布时间】:2019-06-24 09:12:17
【问题描述】:

<title>Calculator</title>

<script type="text/javascript">

    function Calculate(){

        var myWorker = document.getElementById('myOperation');
        var numberOne= document.getElementById('firstNumber').value;
        var numberTwo= document.getElementById('secondNumber').value;
        if (myWorker = "+") {
            var provideAnswer = (numberOne + numberTwo);
            var finalAnswer= document.getElementById('myAnswer');
            finalAnswer.innerHTML = provideAnswer;
        }

        else {

            alert('Please use Addition Symbol Only')

        }
    }
</script>

<h1>CALCULATOR</h1>

<br/>

<h2>Enter the first number</h2>
    <input type="number" id="firstNumber" />

<br/>
<br/>

<h2>Enter the Operation</h2>

    <input type="text" id="myOperation" />

<br/>
<br/>

<h2>Enter the second number</h2>
    <input type="number" id="secondNumber" />
    <input type="submit" value="Answer Is" onclick="Calculate()"/>
<br/>
<br/>

<h1 id="myAnswer">Your ANSWER Will be REPLACED by THIS TEXT</h1>

【问题讨论】:

  • .value 会给你一个字符串,而不是一个数字。
  • 查看副本。它有答案。见stackoverflow.com/a/4841405/989920
  • 你确定吗?我链接的答案要求您解析您的价值。你没有这样做。
  • 我很高兴它已经解决了,但是让你明白为什么你需要这样做。
  • 你有一个等号,意思是“分配”。使用三重等于===,这意味着“比较值”(没有类型强制)。

标签: javascript html calculator addition


【解决方案1】:

您需要首先将值解析为数字 - 最快和最简单的方法是使用一元 + 运算符:

function Calculate() {

        
  var myWorker = document.getElementById('myOperation');      
  var numberOne = +document.getElementById('firstNumber').value;      
  var numberTwo = +document.getElementById('secondNumber').value;      
  if (myWorker == "+") {        
    var provideAnswer = (numberOne + numberTwo);        
    var finalAnswer = document.getElementById('myAnswer');        
    finalAnswer.innerHTML = provideAnswer;      
  } else {

            
    alert('Please use Addition Symbol Only')

          
  }    
}
<h1>CALCULATOR</h1>
<h2>Enter the first number</h2>
<input type="number" id="firstNumber" />
<h2>Enter the Operation</h2>
<input type="text" id="myOperation" />
<h2>Enter the second number</h2>
<input type="number" id="secondNumber" />
<input type="submit" value="Answer Is" onclick="Calculate()" />
<h1 id="myAnswer">Your ANSWER Will be REPLACED by THIS TEXT</h1>

(我稍微修改了您的 HTML 标记以删除换行符)

【讨论】:

  • @IrshadAhmed 是什么意思?它们被用来在上面成功添加(见var numberOne = 之后的+?)
  • 那是因为您使用的是=。更改为 == 即可。
猜你喜欢
  • 2012-11-11
  • 2018-04-03
  • 2013-01-07
  • 2022-11-19
  • 2023-02-11
  • 1970-01-01
相关资源
最近更新 更多