考虑以下java代码:
String toParse = "1.7976931348623157E308"; //max value of a double in java
double parsed = Double.parseDouble(toParse);
System.out.println(parsed);
因为提到的1.7976931348623157E308
一切都是有意义的,并且得到了正确的输出。
现在,如果尝试解析1.7976931348623158E308
(递增前的最后一位E
),您仍然会在控制台中打印出最大值!
只有在尝试解析1.7976931348623159E308
(最后一位数字再次增加)并且更大的一位得到Infinity
.
相应的负值的行为相同。
为什么... 8E308
解析为... 7E308
而不是Infinity
?