在获得新价值之前清除科学按钮

Get Scientific Buttons Clear Before New Value

这可能与我的另一个问题重复:JavaFX Calculator Doesn't Clear After Answer

我用 Javafx/Java 做了一个科学计算器,但是 "Scientific" 按钮,例如 tan,或 cos,或平方根,在清除时有问题。加减乘除按钮工作正常。

Ex): 假设我做了 2 + 2,然后按下 = 得到 4。如果我按下另一个数字,它会先清除,而不是像这样添加到数字上:45 但是像这样:5 如果我按下 +/-/// 按钮,它当然也会清除文本区域,以便用户可以输入另一个数字。

Ex) 假设我做了 16 ,然后按平方根得到 4。如果我按另一个数字,它会像这样添加到原始数字上:323 不是这样的:3 这就是所有其他数字的问题还有科学按钮。

我确实触发了科学/+、-等相同的事情,以便在答案之后出现新值之前清除,所以我不知道这里的问题。

else if(event.getSource() == cos)
        {
            data = Float.parseFloat(display.getText());
            Double ans = Math.cos(Math.toRadians(data));
            display.setText(String.valueOf(ans));
            dot.setDisable(false);  
            if(event.getSource() != divide && event.getSource() != add && event.getSource() != multi && event.getSource() != minus && event.getSource() != pow && event.getSource() != mod)
            {
                start = true;
            } 
        }

这是 'start' 代码:

        private boolean start = false;
        if(start)
        {
            data = Double.parseDouble(display.getText());
            start = false;
        }

以及我是如何使用 +、- 等按钮实现的:

        else if(event.getSource() == equals)
        {
            Double secondOperand = Double.parseDouble(display.getText());
            dot.setDisable(false);
            switch(operation)
            {
                case 1: //Addition
                    Double ans = data + secondOperand;
                    display.setText(String.valueOf(ans));
                    break;
                case 2: //Subtraction
                    ans = data - secondOperand;
                    display.setText(String.valueOf(ans));
                    break;
                case 3: //Multiplication
                    ans = data * secondOperand;
                    display.setText(String.valueOf(ans));
                    break;
                case 4: //Division
                    ans = 0d;
                    try{
                    ans = data / secondOperand;
                    }catch(Exception ex){display.setText("Error");}
                    display.setText(String.valueOf(ans));
                    break;
                case 5:
                    ans = data % secondOperand;
                    display.setText(String.valueOf(ans));
                    break;
                case 6:
                    ans = Math.pow(data, secondOperand);
                    display.setText(String.valueOf(ans));
                    break;

            }
            operation = -1;
            if(event.getSource() != divide && event.getSource() != add && event.getSource() != multi && event.getSource() != minus && event.getSource() != pow && event.getSource() != mod)
            {
                start = true;
            }
        }

我希望如果我输入 16,然后按平方根得到 4。如果我按另一个数字,它会先清除,然后显示输入的新值。

所以我想知道是否有另一种方法可以清除科学按钮。

实际上我漏掉了这行代码:

    display.setText("");

如果我把它放在'start'方法中,问题就解决了。