基于JavaScript的计算器(简单)

基于JavaScript的计算器(简单),javascript,Javascript,在文本字段中,需要指定值​​按按钮数一数。我不明白为何不这样想?原则上,您需要通过一个开关来实现它,但我不理解为什么不计算运算:+,-,*/ <p> <label for="text1">FirstNum</label> <input type="text" id="text1"><br> <label for="operation">Operation</label> <input t

在文本字段中,需要指定值​​按按钮数一数。我不明白为何不这样想?原则上,您需要通过一个开关来实现它,但我不理解为什么不计算运算:+,-,*/

<p>
  <label for="text1">FirstNum</label> 
  <input type="text" id="text1"><br>
  <label for="operation">Operation</label> 
  <input type="text" id="operation"><br>
  <label for="text2">SecondNum</label> 
  <input type="text" id="text2"><br>
  <label for="text3">Result</label> 
  <input type="text" id="text3"><br><br>
  <input type="button" value="ClickResult" onclick="Calc()">
</p>

<script>

  function Calc(operation) {
    //var op;
    switch(operation) {
      case '+':
        text3.value = text1.value + text2.value;
        break;
      case '-':
        text3.value = text1.value - text2.value;
        break;
      case '/':
        text3.value = text1.value / text2.value;
        break;
      case '*':
        text3.value = text1.value * text2.value;
        break;
    }      
 }

</script>

第一个

活动
第二个
结果

功能计算(操作){ //var-op; 开关(操作){ 格“+”: text3.value=text1.value+text2.value; 打破 案例'-': text3.value=text1.value-text2.value; 打破 案例“/”: text3.value=text1.value/text2.value; 打破 案例“*”: text3.value=text1.value*text2.value; 打破 } }
您需要获得文本框的值,如下所示:

   var text1 = document.getElementById('text1').value;
document.getElementById('text3').value = result of the calculation
但是您得到的值是字符串格式的,因此需要将其转换为int或float,因此必须将其键入int或float,如下所示:

   text1 = parseFloat(text1);
然后在结果框中给出如下值:

   var text1 = document.getElementById('text1').value;
document.getElementById('text3').value = result of the calculation
或者另一种方式是:

var result = document.getElementById('text3');
result.value = result of computation

第一个

活动
第二个
结果

函数计算(){ var text1=document.getElementById('text1').value; var text2=document.getElementById('text2').value; var operation=document.getElementById('operation')。值; var text3=document.getElementById('text3'); text1=parseFloat(text1); text2=parseFloat(text2); //var-op; 开关(操作){ 格“+”: text3.value=text1+text2; 打破 案例'-': text3.value=text1-text2; 打破 案例“/”: text3.value=text1/text2; 打破 案例“*”: text3.value=text1*text2; 打破 } }
1。我认为你需要澄清你的问题,因为我发现它不清楚。2.显示
Calc
的输入示例。3. <代码>值字段通常是字符串。您需要先将它们解析为数字,然后才能对它们进行数学运算。您不必将字符串强制为数字,只需在一元运算符前面加上前缀
+
,这样
text1=parseFloat(text1)
就可以是
text1=+text1
。一般来说,我建议避免使用
parseInt()
parseFloat()
,因为JavaScript中的所有数字都是遵循标准的浮点数。
parseInt()
parseFloat()
有使用案例,但这不应该是其中之一。@spex感谢您提供的信息,也许您是对的,我将parseFloat重做为+text1和+text2