Java中Float的最大值?

Jér*_*nge 23 java floating-point minimum

以下问题表明Double的最小值是-Double.MAX_VALUE.Float(即-Float.MAX_VALUE)也是如此吗?

dle*_*lev 26

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


Jon*_*eet 18

是的 - 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
    }
}
Run Code Online (Sandbox Code Playgroud)


R.D*_*ire 14

编辑:我的原始答案似乎非常不正确.谢谢@aioobe指出这一点.

相反,使用java代码的魔力来回答标题问题:

System.out.printf( "Float.MAX_VALUE: %,f\n", Float.MAX_VALUE );
Run Code Online (Sandbox Code Playgroud)

Float.MAX_VALUE:340,282,346,638,528,860,000,000,000,000,000,000,000,000.000000

System.out.printf("in scientific notation: %.18g\n", Float.MAX_VALUE );
Run Code Online (Sandbox Code Playgroud)

科学记数法:3.40282346638528860e + 38

System.out.printf(
            "in hexadecimal floating-point number with a significand and "
            + "an exponent: %a", Float.MAX_VALUE );
Run Code Online (Sandbox Code Playgroud)

带有效数字和指数的十六进制浮点数:0x1.fffffep127


Ale*_*yak 6

是的,Float也是如此.

有关更多信息,请查看此处的手册http://download.oracle.com/javase/7/docs/api/java/lang/Float.html