我正在制作一个简单的计算器,目前正试图解决非整数问题。试图从文本字段中读取格式化的双精度值
有一个文本字段displayField
显示结果和操作员按钮以及一个相等的按钮。
刚刚得到它的工作,双重结果只显示小数位,如果有任何,但我不能得到结果回计算。
public class FXMLDocumentController implements Initializable {
private String operator;
double oldValue;
double newValue = 0;
NumberFormat nf = new DecimalFormat("##.###");
@FXML
private TextField displayField;
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
@FXML
private void handleDigitAction(ActionEvent event) {
String digit = ((Button) event.getSource()).getText();
String oldText = displayField.getText();
String newText = oldText + digit;
displayField.setText(newText);
}
@FXML
private void handleOperator(ActionEvent event) {
oldValue = Double.parseDouble(displayField.getText());
displayField.setText("");
operator = ((Button) event.getSource()).getText();
}
@FXML
private void handleEqualAction(ActionEvent event) {
switch (operator) {
case "+":
newValue = oldValue + Double.parseDouble(displayField.getText());
break;
case "-":
newValue = oldValue - Double.parseDouble(displayField.getText());
break;
case "*":
newValue = oldValue * Double.parseDouble(displayField.getText());
break;
case "/":
newValue = oldValue/Double.parseDouble(displayField.getText());
break;
default:
break;
}
displayField.setText(String.valueOf(nf.format(newValue)));
}
}
的错误,当我例如尝试计算5/2第一,得到的结果2,5,然后点击操作按钮时发生。 所以我想我只需要使用一个额外的对象来保存结果或者只是改变我从文本字段中读取的行(这样它也适用于这种改变的格式),但我不知道如何。
目前还不清楚你在问什么。当您第二次点击操作员按钮时,什么值? – ergonaut