2

ここに私のコードがあります:

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

エラーメッセージは次のとおりです: Exception in thread "main" java.lang.NumberFormatException: For input string: "cost" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241) at java.lang.Double.parseDouble(Double) .java:540) で DebugTwo4.main(DebugTwo4.java:16)

4

3 に答える 3

3

"cost"ダブルじゃない…

したがって、これは失敗します...

cost = Double.parseDouble("cost");

私はあなたが意味したと思います

cost = Double.parseDouble(costString);

ユーザーが入力する内容を制限するように設計されたJSpinnerまたはの使用を検討することもできます...JFormattedTextField

于 2013-08-30T01:19:03.897 に答える
2

問題は次のとおりです。

Double.parseDouble("cost");

parseDouble メソッドは有効な値を表す文字列を期待してdoubleいますが、それに「コスト」を渡していますが、これは無効です。

costString代わりに、 double 値を読み取っているため、変数を渡す必要があると思います。

Double.parseDouble(costString);
于 2013-08-30T01:19:22.883 に答える
1
 try
  {
     cost = Double.valueOf(costString);
  }
 catch (NumberFormatException e)
  {
      System.out.println("NumberFormatException occured");
  }

それ以外の

Double.parseDouble("cost");
于 2013-08-30T01:22:06.503 に答える