需要一些关于java方法showMessageDialog的帮助

时间:2013-08-30 01:17:26

标签: java swing debugging

这是我的代码:

//DebugTwo4.java

import javax.swing.JOptionPane;

public class DebugTwo4
{
   public static void main(String[] args)
   {
      String costString;
      double cost;
      double tax = 0.06;

      costString = JOptionPane.showInputDialog(null,
         "Enter price of item you are buying", "Purchases",
         JOptionPane.INFORMATION_MESSAGE);
      cost = Double.parseDouble("cost");
      JOptionPane.showMessageDialog(null,"With " + tax * 100 + "% tax, purchase is $" + cost + cost     * tax);
      System.exit(0);
   }
}

,错误信息是: 线程“main”中的异常java.lang.NumberFormatException:对于输入字符串:“cost”     at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)     在java.lang.Double.parseDouble(Double.java:540)     在DebugTwo4.main(DebugTwo4.java:16)

3 个答案:

答案 0 :(得分:3)

"cost"不是双重的......

因此,这将失败......

cost = Double.parseDouble("cost");

我认为你的意思是

cost = Double.parseDouble(costString);

您可能还想考虑使用旨在限制用户输入内容的JSpinner甚至JFormattedTextField ...

答案 1 :(得分:2)

问题在于:

Double.parseDouble("cost");

parseDouble方法需要一个表示有效double值的字符串,但是您将“cost”传递给它,这是无效的。

相反,我相信您需要将costString变量传递给它,因为它正在读取其中的双精度值:

Double.parseDouble(costString);

答案 2 :(得分:1)

 try
  {
     cost = Double.valueOf(costString);
  }
 catch (NumberFormatException e)
  {
      System.out.println("NumberFormatException occured");
  }

而不是

Double.parseDouble("cost");