我正在製作一個簡單的計算器,目前正試圖解決非整數問題。試圖從文本字段中讀取格式化的雙精度值
有一個文本字段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