我正在努力实现模拟退火程序,其中一部分涉及从我的java程序读取的.txt文件中计算分数。
1)从用户读取输入字符串。我的输入字符串越长,下面发生以下异常的可能性越大
2)计算得分实质上是添加了很多十进制数,我把它存储在'double'变量中。
有人可以告诉我为什么会发生这样的例外吗?
Hill Swap得分: 0.24874990000000005交换后...线程“main”中的异常 java.lang.NumberFormatException:For 输入字符串:“7.92066E-” 在sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
非常感谢!
答案 0 :(得分:7)
这意味着您的程序正在尝试解析字符串“7.92066E-”,该字符串不能解析为Double。
您应该检查此字符串的来源(堆栈跟踪的其余部分应该告诉您),并确保您没有在该行的某处获取无效数据。