当前位置: 首页 > 知识库问答 >
问题:

Javascript计算器,输入新数字时如何清除以前的数字?

丁嘉
2023-03-14

我正在使用javascript编码一个计算器,遇到了一个问题。

我想不出输入新号码时清除显示屏的代码。

实例

>

  • 按3(屏幕上有3个apear)

    按 /-/*/ ( 将3存入Num1并设置操作,则屏幕清晰。(

    按4(屏幕上有4个apear)

    按下另一个(将4保存到Num2,解决(Num1 Num2),然后将答案保存回Num1)

    --这里是一个问题,我不知道如何在输入新号码时清除显示。系统解决问题后,会将答案显示在屏幕上,当我输入一个新数字时,它会与答案叠加。假设答案是45,我想减去56,输入数字显示将显示4556。

    想要计算器像

    • 按52(52出现)
    • 按/-/*/(52仍在显示屏上,操作设置在后台)
    • 按42键(52为踢出并替换为42)
    • 按(回答显示在显示屏上并停留在那里)
    • 输入另一个号码(答案清除,屏幕显示新号码)
    var num1;
    
    var num2;
    
    var operation;
    
    function numPress(num){
        var current = document.getElementById("display").value;
        current = current + num;
        document.getElementById("display").value = current;
    }
    
    function opPress(opcode){
        var current = document.getElementById("display").value;
        current = parseInt(document.getElementById("display").value);
            if( num1== null){
            num1 = current;
            operation= opcode;
            document.getElementById("display").value = null;
        }
            else{
                num2 = current;
                    if (operation == "+" ){
                        var equal = ( num1 + num2 );
                        num1 = equal;
                        operation= opcode;
                        document.getElementById("display").value = num1;
                    }
                    if (operation == "-" ){
                          var equal = ( num1 - num2 );
                          num1 = equal;
                          operation= opcode;
                          document.getElementById("display").value = num1;
                    }
                    if (operation == "*" ){
                          var equal = ( num1 * num2 );
                          num1 = equal;
                          operation= opcode;
                          document.getElementById("display").value = num1;
                    }
                    if (operation == "/" ){
                          var equal = ( num1 / num2 );
                          num1 = equal;
                          operation= opcode;
                          document.getElementById("display").value = num1;
                    }
              }
        }
    
        function calculation(){
          var current = document.getElementById("display").value;
          current = parseInt(document.getElementById("display").value);
          num2 = current;
              if (operation == "+" ){
                    var equal = ( num1 + num2 );
                    document.getElementById("display").value = equal;
              }
              if (operation == "-" ){
                    var equal = ( num1 - num2 );
                    document.getElementById("display").value = equal;
              }
              if (operation == "*" ){
                    var equal = ( num1 * num2 );
                    document.getElementById("display").value = equal;
              }
              if (operation == "/" ){
                    var equal = ( num1 / num2 );
                    document.getElementById("display").value = equal;
              }
            }
    
    function calculation(){ 
        var current= document.getElementById("display").value;
        num1 = null;
        num2 = null;
        var no = null;
        document.getElementById("display").value = no;
    }
    
    <!DOCTYPE html>
        <html>
            <head>
                <title>Calculator</title>
                    <link rel="stylesheet" href="style.css">
            </head>
    
      <body>
    <table>
      <tr>
        <input id="display" type ="text" value="" onkeydown="return false;">
      </tr>
      <tr>
        <td></td><td></td><td></td>
        <td colspan="5"><input id="c" type="button" value = "DEL" onclick = "cls();"></td>
      </tr>
      <tr>
        <td></td><td></td><td></td>
        <td><input id="b" type="button" value = "7" onclick = "numPress('7');"></td>
        <td><input id="b" type="button" value = "8" onclick = "numPress('8');"></td>
        <td><input id="b" type="button" value = "9" onclick = "numPress('9');"></td>
        <td><input id="a" type="button" value = "+" onclick = "opPress('+');"></td>
        <td></td><td></td><td></td>
      </tr>
      <tr>
        <td></td><td></td><td></td>
        <td><input id="b" type="button" value = "4" onclick = "numPress('4');"></td>
        <td><input id="b" type="button" value = "5" onclick = "numPress('5');"></td>
        <td><input id="b" type="button" value = "6" onclick = "numPress('6');"></td>
        <td><input id="a" type="button" value = "-" onclick = "opPress('-');"></td>
        <td></td><td></td><td></td>
      </tr>
      <tr>
        <td></td><td></td><td></td>
        <td><input id="b" type="button" value = "1" onclick = "numPress('1');"></td>
        <td><input id="b" type="button" value = "2" onclick = "numPress('2');"></td>
        <td><input id="b" type="button" value = "3" onclick = "numPress('3');"></td>
        <td><input id="a" type="button" value = "*" onclick = "opPress('*')"></td>
        <td></td><td></td><td></td>
      </tr>
      <tr>
        <td></td><td></td><td></td>
        <td><input id="b" type="button" value = "0" onclick = "numPress('0');"></td>
        <td><input id="a1" type="button" value = "." onclick = "numPress('.');"></td>
        <td><input id="a2" type="button" value = "=" onclick = "calculation('=');"></td>
        <td><input id="a" type="button" value = "/" onclick = "opPress('/');"></td>
        <td></td><td></td><td></td>
      </tr>
    </table>
    </body>
    </html>
    
  • 共有1个答案

    公良泰宁
    2023-03-14

    您可以添加另一个名为lastPressvar

    内部calculation()设置lastPress=calculation。在numPress()pressure()中,您可以将其设置为其他内容。

    然后在NumPress()中检查最后一次按下是否是计算,如果是,则清除它。

    逻辑是,如果有人计算了一个数字(它会显示在屏幕上),然后他们做的下一件事就是输入一个数字,它就会清除屏幕。我相信这就是你想要实现的。

    如果您想要略微不同的结果,您可以修改lastPress的位置/逻辑。

     类似资料:
    • 本文向大家介绍使用JavaScript计算数字的除数,包括了使用JavaScript计算数字的除数的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个JavaScript函数,该函数接受一个数字并返回其除数的计数。 输入 输出 因为除数是- 示例 以下是代码- 输出结果

    • 我有一个Java作业,我需要读入一个字符,然后计算该字符在数组中出现的次数。这是我目前所掌握的。

    • 我试图编写一个函数,它不接受输入,而是要求一个名称。如果您输入一个空字符串,函数应该为每个名字打印同名的人数。 例如: 到目前为止,我已经: 我敢肯定我没有数对。您将如何正确执行此功能,以及在不知道将有多少不同名称的情况下如何区分不同的输入并对其进行计数? 此外,如果可能的话,我想在我还在学习的时候学习基本代码,即使它不高效。

    • 问题内容: 我正在构建Codeigniter应用程序,并且正在尽最大努力防止SQL注入。我正在使用Active Record方法构造所有查询。我知道Active Record会自动清除输入内容,但是我想知道到底是什么程度?它只是转义所有引号,还是做更多呢?如何防止混淆的SQL注入或其他更高级的注入? 基本上,我正在寻找有关CI如何清理数据的深入说明。有人知道吗 问题答案: 完全像这样(对于MySQ

    • 我试图找到一种方法来擦除文本屏幕从我的计算器,当你按下 /-按钮,使其行为更像一个真正的计算器。 php文件返回html代码,其中我有一个

    • 问题内容: 我想清除表单中的文件输入。 我知道将源设置为相同的方法…但是该方法不会删除所选的文件路径。 注意 :我希望避免重新加载页面,重置表单或执行AJAX调用。 这可能吗? 问题答案: 如何删除该节点,创建一个具有相同名称的新节点?