2017-07-17 77 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) 

我點擊jButton3後不斷收到這個錯誤。繼承我的代碼。Java數字格式異常。

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); 
} 

這是sub_field代碼和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

錯誤信息的哪一部分不清楚?它的工作原理是 –

回答

0

java.lang.NumberFormatException是相當清楚的: 「P35.00」 不是一個數字。 當解析Double.parseDouble的參數不符合它的要求時,會拋出此異常。

嘗試從35.00刪除P,看看它是否工作。

通常的做法是用try-catch塊將其包圍以提示用戶出了什麼問題。

+0

。謝謝。 – sawpaw300

0

由於輸入字符串是「P35.00」而導致崩潰,並嘗試將其解析爲雙精度值。刪除'P',它應該工作,因爲編譯器不會將P解析爲雙精度。