Java 关于Math.floor(Double.MIN_值)

Java 关于Math.floor(Double.MIN_值),java,Java,为什么Math.floorDouble.MIN_值==0? 有谁能告诉我楼层函数的java算法,或者至少解释一下这个结果吗?并不是你所想的意思。它意味着最小的正双倍值-因此,当你取它的底值时,最大的整数小于或等于这个值,你会得到0。文件: 一个常数,包含2-1074型的最小正非零值。它等于十六进制浮点文字0x0.0000000000001P-1022,也等于Double.longBitsToDouble0x1L 我同意这个名字令人费解,但一旦你看到令人费解的行为,就应该检查文档 如果您想得到最低

为什么Math.floorDouble.MIN_值==0? 有谁能告诉我楼层函数的java算法,或者至少解释一下这个结果吗?

并不是你所想的意思。它意味着最小的正双倍值-因此,当你取它的底值时,最大的整数小于或等于这个值,你会得到0。文件:

一个常数,包含2-1074型的最小正非零值。它等于十六进制浮点文字0x0.0000000000001P-1022,也等于Double.longBitsToDouble0x1L

我同意这个名字令人费解,但一旦你看到令人费解的行为,就应该检查文档


如果您想得到最低的有限双精度,只需使用-double.MAX_值。

恕我直言,但如果您当时需要它,只需最简单地浏览一下文档就可以得到答案。double.MIN_值非常接近于0,因此当您将其四舍五入时,您将得到0…同意。只要将鼠标悬停在MIN_值上,它最深的秘密就会向您揭示-