在尝试将简单的String解析为long值时,我遇到了一个非常棘手的异常。
public class Utils {
public static double tryParseLong(String s) {
try {
return Long.parseLong("45.6", 10);
} catch (Exception e) {
e.printStackTrace();
} finally {
return 0;
}
}
}
java.lang.NumberFormatException: For input string: "45.6"
答案 0 :(得分:2)
45.6不长,它是浮点数或双倍,因此错误。使用Double.parseDouble。
答案 1 :(得分:1)
" 45.6"不是Long的有效值,因为 Long不能包含浮点数,这就是您获得异常的原因。
如果你只想解析Integral部分(即45),那么你可以先从String解析Double,然后像这样将它转换为Long,
(long) Double.parseDouble("45.6");
它将返回45。