Java 中 Float 的最大值?

2022-09-01 11:30:06

以下问题表明双精度值的最小值为 。对于浮点数(即 )也是如此吗?-Double.MAX_VALUE-Float.MAX_VALUE


答案 1

是的,是最大幅度的负数。s 的表示方式与 s 相同,只是存储空间的一半(以及随之而来的精度损失)。由于IEEE 754中的符号由单个位表示,因此翻转该位不会改变其余位可达到的总体幅度。-Float.MAX_VALUEfloatdouble


答案 2

是的 - 它与相同的位模式,除了符号位翻转...这是获得价值的另一种方法:Float.MAX_VALUE

public class Test {
    public static void main(String[] args) {
        // Float.MAX_VALUE is intBitsToFloat(0x7f7fffff)
        // so we set the most significant bit - the sign bit
        float f = Float.intBitsToFloat((int) 0xff7fffff);
        System.out.println(f == -Float.MAX_VALUE); // true
    }
}