上篇博客我查看了下byte、char、short的取值范围,于是我今天打开编译器又想起来看看Float和Double的取值范围
System.out.println(Float.MIN_VALUE + " " + Float.MAX_VALUE);
System.out.println(Double.MIN_VALUE + " " + Double.MAX_VALUE);
输出如下:

这很奇怪,为什么他们的最小值都是正数?
于是我上Stack OverFlow查了一下:
Float.MIN_VALUE问题地址
Double.MIN_VALUE问题地址
根据javadoc for Float和javadoc for Double中的定义,Float.MIN_VALUE是保持float类型的最小正非零数,值为2^-149; Double.MIN_VALUE是保持double类型的最小正非零数,值为2^-1074.
貌似超链接访问失败,在此贴上问题地址和javadoc地址:
https://stackoverflow.com/questions/11419797/why-is-float-min-value-in-java-a-positive-value
https://stackoverflow.com/questions/5709073/is-double-min-value-is-greater-than-zero-in-java
https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html#MIN_VALUE
https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html#MIN_VALUE
网友评论