2017-07-17 82 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解析为双精度。