Java Netbeans 计算器执行错误计算
Java Netbeans Calculator performing wrong calculation
我目前正在 NetBeans 中开发 GUI 计算器。我的加法运算符运行良好,但至于我的减法、乘法和除法,它 returns 错误的值。我认为我的计算逻辑没有问题。
运算符 returns:
的值
减法:
带负号的输入值之和
乘法
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;
}
}
我认为问题是在计算结果之前accum2和accum2的值。那么你可以在执行计算之前使用 System.out.println(" accum 1 "+ accum1)
和 System.out.println(" accum 2 "+ accum2)
检查它们的值吗?
我目前正在 NetBeans 中开发 GUI 计算器。我的加法运算符运行良好,但至于我的减法、乘法和除法,它 returns 错误的值。我认为我的计算逻辑没有问题。
运算符 returns:
的值减法: 带负号的输入值之和
乘法 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;
}
}
我认为问题是在计算结果之前accum2和accum2的值。那么你可以在执行计算之前使用 System.out.println(" accum 1 "+ accum1)
和 System.out.println(" accum 2 "+ accum2)
检查它们的值吗?