Java输出double类型中的最小正数和最大正数

这是《写给大忙人看的java核心技术》中的一道练习题。

1. 输出最大正数值

System.out.println(Double.MAX_VALUE);

直接输出包装类Double的MAX_VALUE。

2. 输出最小正数值

System.out.println(Double.MIN_VALUE);

使用Math.nextUp()方法也能输出最小的正数

java.lang.Math.nextUp(double d) 返回浮点值在正无穷方向上相邻的至d。这种方法在语义上等同到nextAfter(d, Double.POSITIVE_INFINITY);然而,

nextUp的实现可能会比其等效nextAfter调用运行速度更快。特殊情况:

  • 如果参数为NaN,那么结果为NaN。

  • 如果参数是正无穷大,其结果是正无穷大。

  • 如果参数是零,结果是Double.MIN_VALUE

System.out.println(Math.nextUp(0.0));

3. 关于Integer.MIN_VALUE和Double.MIN_VALUE

Integer.MIN_VALUE自不必说,就是32位整型能存储的最小数字:0x80000000,是一个负数。 
但是Double.MIN_VALUE却是一个正数,Double.MIN_VALUE表示的时64位双精度值能表示的最小正数。

如果需要用到Double的负无穷,可以用Double.NEGATIVE_INFINITY。

posted @ 2017-02-23 10:01  Black_Knight  阅读(7877)  评论(0编辑  收藏  举报