我正在努力实施模拟退火程序,其中一部分涉及计算我的Java程序读取的.txt文件中的分数。

1)从用户读取输入字符串。我的输入字符串越长,以下例外情况越有可能发生

2)所计算的分数本质上是添加了很多十进制数字,我将其存储在“双”变量中。

有人可以告诉我为什么会发生这样的例外吗?

从Hill交换中得分:0.2487499000000000005交换后...线程“ Main” java.lang.numberformatexception中的异常:for Input String:“ 7.92066e-” sun.misc.misc.floationdecimal.readjavaimal.readjavaformal.readjavaformatring(floatingdecimal.java:12224:12224)

非常感谢!

有帮助吗?

解决方案

这意味着您的程序正在尝试解析字符串“ 7.92066e-”,这是双重可解析的。

您应该检查此字符串来自何处(堆栈跟踪的其余部分应该告诉您),并确保您不会在生产线的某个地方获得无效的数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top