2017-07-17 3 views
-3
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "P35.00" 
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043) 
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) 
at java.lang.Double.parseDouble(Double.java:538) 
at OrderSystems.OrderSystem.jButton3MouseClicked(OrderSystem.java:419) 
at OrderSystems.OrderSystem.access$900(OrderSystem.java:14) 
at OrderSystems.OrderSystem$10.mouseClicked(OrderSystem.java:241) 

Ich halte immer diese Fehlermeldung, nachdem ich die jButton3 geklickt. Heres meine Codes.Java-Nummer Format Ausnahme.

private void jButton3MouseClicked(java.awt.event.MouseEvent evt) { 
double sub = Double.parseDouble(sub_field.getText()); 
double vat = Double.parseDouble(vat_field.getText()); 
double allTotal = (sub + vat); 
String iTotal = String.format("%.2f", allTotal);  
total_field.setText(iTotal); 
} 

Dies ist der Code für die sub_field und vat_field

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
double ham = Double.parseDouble(ham_field.getText()); 
    double burger = Double.parseDouble(burger_field.getText()); 
    double bacon = Double.parseDouble(bacon_field.getText()); 


    double bac = bacon * 5; 
    double harm = ham * 10; 
    double burg = burger *20; 

    double sub = harm + burg + bac; 
    String sub_com = String.format("P%.2f", sub); 
    sub_field.setText(sub_com); 

} 
+2

welcher Teil der Fehlermeldung ist unklar? –

Antwort

0

java.lang.NumberFormatException ist ziemlich klar: "P35.00" ist keine Zahl. Diese Ausnahme wird ausgelöst, wenn die paramether für das Parsing Double.parseDouble nicht das, was es ist excpecting.

die P ab 35.00 Entfernen ausprobieren und sehen, ob es funktioniert.

Es ist auch üblich, mit einem Try-Catch-Block zu umgeben, um den Benutzer aufzufordern, was falsch gelaufen ist.

+0

es funktioniert. Vielen Dank. – sawpaw300

0

Es stürzt ab, weil Ihre Eingabezeichenfolge „P35.00“ ist und Sie versuchen, dass sich in ein Doppel zu analysieren. Entfernen Sie das 'P' und es sollte funktionieren, da der Compiler ein P nicht in ein Double zerlegt.

Verwandte Themen