Double.parseDouble("100a"); //按预期获得错误但是为什么下面的行没有得到错误
Double.parseDouble("100d");
请解释一下.
根据源代码,该Double.parseDouble(String s)方法使用FloatingDecimal.readJavaFormatString(String s)解析提供的参数.
在那里,你可以看到,有一个检查,如果所提供的String有端'D','d','F'或者'f',如果没有,那么NumberFormatException被抛出:
if (i < l &&
((i != l - 1) ||
(in.charAt(i) != 'f' &&
in.charAt(i) != 'F' &&
in.charAt(i) != 'd' &&
in.charAt(i) != 'D'))) {
break parseNumber; // go throw exception
}
Run Code Online (Sandbox Code Playgroud)