double B=Double.parseDouble(emp_txt2.getText());
double C=Double.parseDouble(nopay_txt3.getText());
double E=Double.parseDouble(wop_txt4.getText());
double F=Double.parseDouble(wop_txt5.getText());
double f =B+C+E+F;
String p = String.format("%.2f",f);
lb1_total3.setText(p);
I want to assign double B,C,E,F values to zero when the jtextfield is empty.
You could use this method instead of Double.parseDouble .
public static double tryParsDouble(String s, double defaultValue) {
if (s == null) return defaultValue;
try {
return Double.parseDouble(s);
} catch (NumberFormatException x) {
return defaultValue;
}
}
And then to:
double F = tryParsDouble(wop_txt5.getText(), 0.0);
Try entering the values in the emp_text2
text field and the code returns the following values respectively: ""
, " "
, "1"
, "1.1"
, "-1.1"
, "1.0 "
returns 0.0
, 0.0
, 1.0
, 1.1
, -1.1
, 1.0
.
What happens if the input is "1.1x"
? This throws NumberFormatException
- and the application needs to figure what to do.
double value = getDoubleValue(emp_text2.getText());
...
private static double getDoubleValue(String input) {
double result = 0d;
if ((input == null) || input.trim().isEmpty()) {
return result;
}
try {
result = Double.parseDouble(input);
}
catch (NumberFormatException ex) {
// return result -or-
// rethrow the exception -or-
// whatever the application logic says
}
return result;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.