我正在实现一个模拟退火程序,其中一部分涉及从我的 java 程序读取的 .txt 文件计算分数。
1) 从用户那里读取输入字符串。我输入的字符串越长,越有可能出现下面的异常
2) 计算出的分数本质上是将很多小数相加,我将其存储在“double”变量中。
有人可以告诉我为什么会发生这样的异常吗?
Score from Hill Swap: 0.24874990000000005 After swap... Exception in thread "main" java.lang.NumberFormatException: For input string: "7.92066E-" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
非常感谢!
最佳答案
这意味着您的程序正在尝试解析字符串“7.92066E-”,该字符串不可解析为 Double。
您应该检查此字符串的来源(堆栈跟踪的其余部分应该会告诉您)并确保您没有在沿线的某处获取无效数据。
关于java - 这个异常是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5812711/