关于Math.floor(Double.MIN_VALUE)

时间:2012-05-13 07:05:36

标签: java

为什么Math.floor(Double.MIN_VALUE)== 0? 任何人都可以发给我楼层功能的java算法或至少解释一下这个结果吗?

1 个答案:

答案 0 :(得分:16)

Double.MIN_VALUE并不代表您认为的含义。它意味着“最小的正double值” - 当你拿它的“下限”(小于或等于该值的最大整数)时,你自然会得到0.文档:

  

一个常量,保持double类型的最小正非零值,2 -1074 。它等于十六进制浮点字面值0x0.0000000000001P-1022,也等于Double.longBitsToDouble(0x1L)。

我同意该名称令人困惑,但只要您看到令人困惑的行为,就一定要查看文档。

如果您想获得“最低”的有限double,请使用-double.MAX_VALUE