为什么是 Math.floor(Double.MIN_VALUE) == 0 ?任何人都可以向我发送 Floor 函数的 java algorithme 或者至少解释一下这个结果吗?
问问题
200 次
1 回答
16
Double.MIN_VALUE
并不意味着你认为它意味着什么。它的意思是“最小的正值double
”——所以很自然地,当你取它的“下限”(小于或等于该值的最大整数)时,你会得到 0。文档:
一个保持双精度类型的最小正非零值 2 -1074的常数。它等于十六进制浮点文字 0x0.0000000000001P-1022,也等于 Double.longBitsToDouble(0x1L)。
我同意这个名称令人困惑,但一旦你看到令人困惑的行为,总是值得检查文档。
如果您想获得“最低”的有限double
,只需使用-double.MAX_VALUE
.
于 2012-05-13T07:07:58.570 回答