Java数字格式异常。

时间:2017-07-17 16:12:27

标签: java netbeans

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后,我一直收到此错误。继承我的代码。

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 :(得分:0)

java.lang.NumberFormatException非常明确:" P35.00"不是一个数字。 当解析Double.parseDouble的参数不是它所要求的参数时,抛出此异常。

尝试从35.00移除P并查看它是否有效。

通常的做法是用try-catch块包围它以提示用户出错的地方。

答案 1 :(得分:0)

它崩溃了,因为你的输入字符串是" P35.00"并尝试将其解析成双精度数。删除' P'它应该工作,因为编译器不会将P解析为double。