Java按钮中的FX算术表达式
Java FX arithmetic expression in a button
你好,我想做一个带有两个输入字段的按钮,并尝试执行以下操作:
- chick if it's a number.(所以它可以区分两个数字)
- 我不能用零除任何数字。
并显示它是一个算术表达式。
有什么帮助吗?
代码是吹::
enter image description here
代码::
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 {
}
});
它显示无穷大
不是我在捕获区所做的预期
Java中的浮点运算不会抛出被零除的异常;它的计算结果为 Double
class(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 {
}
});
你好,我想做一个带有两个输入字段的按钮,并尝试执行以下操作:
- chick if it's a number.(所以它可以区分两个数字)
- 我不能用零除任何数字。 并显示它是一个算术表达式。 有什么帮助吗? 代码是吹:: enter image description here
代码::
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 {
}
});
它显示无穷大 不是我在捕获区所做的预期
Java中的浮点运算不会抛出被零除的异常;它的计算结果为 Double
class(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 {
}
});