嗨,我想做一個帶有兩個輸入欄位并嘗試執行以下操作的按鈕:
- 小雞如果它是一個數字。(所以它可以劃分兩個數字)
- 我不能將任何數字除以零。并表明它是一個算術運算式。所以有什么幫助嗎?代碼很糟糕 :: 在此處輸入影像描述
代碼 ::
b4.setOnMouseClicked((MouseEvent ex) -> {
String Num1 = tf4.getText();
String Num2 = tf8.getText();
if(Num1.matches("^\\d (\\.\\d )?") && Num2.matches("^\\d (\\.\\d )?")) {
try {
double Num1f = Double.parseDouble(Num1);
double Num2f = Double.parseDouble(Num2);
double result =(Num2f / Num1f);
valf4.setText(String.valueOf(result));
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException");
valf4.setText("You can't do that !");
}
} else {
}
});
它顯示的無限遠不是我在捕撈區所做的預期
uj5u.com熱心網友回復:
Java 中的浮點運算不會拋出除以零的例外;它評估為Double類 (Double.POSITIVE_INFINITY或Double.NEGATIVE_INFINITY)中的特殊值之一。
您可以測驗分母是否為零,或者測驗結果是否為無限,而不是捕獲例外:
b4.setOnMouseClicked((MouseEvent ex) -> {
String num1 = tf4.getText();
String num2 = tf8.getText();
if(num1.matches("^\\d (\\.\\d )?") && num2.matches("^\\d (\\.\\d )?")) {
double num1f = Double.parseDouble(num1);
double num2f = Double.parseDouble(num2);
double result = num2f / num1f;
if (Double.isInfinite(result)) {
valf4.setText("You can't do that !");
} else {
valf4.setText(String.valueOf(result));
}
} else {
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/405412.html
標籤:
