简体   繁体   中英

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.

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM