2

我目前正在使用 NetBeans 中的 GUI 计算器。我的加法运算符运行良好,但至于我的减法、乘法和除法,它返回错误的值。我认为我的计算逻辑没有问题。

运算符返回的值:

减法:带负号的输入值之和

乘法 0

0分部

这是我为操作员准备的按钮和功能:

// add button
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {                                       
    operator = "+";
    calculation(operator);
} 

// subtract button
private void btnSubtractActionPerformed(java.awt.event.ActionEvent evt) {                                            
    operator = "-";
    calculation(operator);
} 

// multiply button
private void btnMultiplyActionPerformed(java.awt.event.ActionEvent evt) {                                            
    operator = "*";
    calculation(operator);
}

// divide button
private void btnDivideActionPerformed(java.awt.event.ActionEvent evt) {                                          
    operator = "/";
    calculation(operator);
} 

// equals button
private void btnEqualsActionPerformed(java.awt.event.ActionEvent evt) {                                          
    calculation(operator);
    txtInput.setText(String.valueOf(accum2));
}


// calculation method
public void calculation(String operator){
    if(operator.equals("+")) {
        accum2 += accum1;
        accum1 = 0;
    } else if(operator.equals("-")){
        accum2 -= accum1;
        accum1 = 0;
    } else if(operator.equals("*")){
        accum2 *= accum1;
        accum1 = 0;
    } else if(operator.equals("/")){
        accum2 /= accum1;
        accum1 = 0;
    } else {
        accum2 = accum1;
        accum1 = 0;
    }
}
4

1 回答 1

0

我认为问题是在计算结果之前 accum2 和 accum2 的值。因此,您可以在执行计算之前使用System.out.println(" accum 1 "+ accum1)and来检查它们的值吗?System.out.println(" accum 2 "+ accum2)

于 2017-10-20T06:45:06.777 回答