java - 计算器无法正常计算三位数

标签 java

所以我的计算器可以完美地处理任何涉及两位数字(包括 C 按钮)的计算,但是如果我尝试任何三位数计算,这实际上不起作用,例如 1 + 2 + 3 = 5 有人可以告诉我为什么会这样,无论如何我可以修复它吗?

public class Calculator {  

  private long currentInput;          //current input
  private long previousInput;         // previous input
  private long result;            // result of calculation
  private String lastOperator = "";  // keeps track of the last operator entered


  /* New digit entered as integer value i - moves currentInput 1 decimal place to the left and adds i in "one's column" */
  public void inDigit(long i) {
    currentInput = (currentInput * 10) + i;
  }


  /* Operator entered  + - or *   */
  public void inOperator(String op) {
    previousInput = currentInput;      // save the new input as previous to get ready for next input
    currentInput = 0;
    lastOperator = op;                 // remember which operator was entered
  } 


   /* Equals operation sets result to previousInput + - or * currentInput (depending on lastOperator) */
  public void inEquals() {
    if (lastOperator.equals("+")) {
      result = previousInput + currentInput;
    } else if (lastOperator.equals("-")) { 
      result = previousInput - currentInput;
    } else if (lastOperator.equals("*"))  {
      result = previousInput * currentInput;
    } 
    lastOperator = "";       // reset last operator to "nothing"
  }


  /* Clear operation */
  public void inClear() {
    currentInput = 0;
    previousInput = 0;
    result = 0;
    lastOperator = "";
  } 

  /* returns the current result */
  public String getResult() {  
    return Long.toString(result);  //converts int to String
  }

  /* returns the previous input value */
  public String getPreviousInput() {
    return Long.toString(previousInput);
  }
  /* returns the current input value */
  public String getCurrentInput() {
    return Long.toString(currentInput);
  }

最佳答案

好吧,您只存储最后两个操作数,因此对于 1 + 2 + 3 = 5 的示例,当您输入第二个 + 符号时,1 会丢失,而 2 + 3 = 5。

关于java - 计算器无法正常计算三位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747003/

相关文章:

java - 更新 Gradle 插件版本 3.3 后如何使用 R

Java volatile 语义,JMM 保证

java - 如何从具有多个相同字段值的类的值中获取字段名称

java - GWT 上的 JsonP 响应代码

java - 重新调整 EditText 中的文本 (android)

java - 在 Oracle 和 Vertica 之间移动数据的有效方法

java - Android 按下按钮时的一些 Action

java - 如何使用继承的方法在继承层次结构的每个级别显示 SimpleClassName?

java - 如何让两个线程互相等待来执行任务?

java - 如何从字节数组构造颜色?