[英]Java netbeans - how assign jtextfield value to zero if jtextfield value is empty
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. 当jtextfield为空时,我想将B,C,E,F的双精度值赋给零。
You could use this method instead of Double.parseDouble . 您可以使用此方法代替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
. 尝试在输入值
emp_text2
文本字段和代码分别返回下列值: ""
" "
"1"
"1.1"
"-1.1"
"1.0 "
返回0.0
, 0.0
, 1.0
, 1.1
, -1.1
, 1.0
。
What happens if the input is "1.1x"
? 如果输入为
"1.1x"
怎样? This throws NumberFormatException
- and the application needs to figure what to do. 这将引发
NumberFormatException
应用程序需要弄清楚该怎么做。
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.