1

私はシミュレートされたアニーリング プログラムの実装に取り​​組んでおり、その一部には、私の Java プログラムが読み取る .txt ファイルからスコアを計算することが含まれます。

1) 入力文字列がユーザーから読み取られます。入力文字列が長いほど、以下の例外が発生する可能性が高くなります

2) 計算されるスコアは、基本的に多くの 10 進数を追加するものであり、それを「double」変数に格納します。

なぜそのような例外が発生するのか、誰か教えてもらえますか?

Hill Swap のスコア: 0.24874990000000005 スワップ後... スレッド "main" での例外 java.lang.NumberFormatException: For input string: "7.92066E-" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)

どうもありがとう!

4

1 に答える 1

7

これは、Double として解析できない文字列 "7.92066E-" をプログラムが解析しようとしていることを意味します。

この文字列がどこから来ているかを確認し (スタック トレースの残りの部分でわかるはずです)、行のどこかで無効なデータが取得されていないことを確認する必要があります。

于 2011-04-28T01:52:49.343 に答える