Maximum value for Float in Java?

被刻印的时光 ゝ 提交于 2019-12-03 04:38:32

Yes, -Float.MAX_VALUE is the negative number with largest magnitude. floats are represented the same way as doubles, just with half the storage space (and the accompanying loss of precision.) Since signs in IEEE 754 are represented by a single bit, flipping that bit doesn't change the overall magnitude attainable by the remaining bits.

Yes - it's the same bit pattern as Float.MAX_VALUE except with the sign bit flipped... and that's another way to get at the 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
    }
}

EDIT: My original answer appears to be badly incorrect. Thank you @aioobe for pointing this out.

Instead, using the magic of java code to answer the title question:

System.out.printf( "Float.MAX_VALUE: %,f\n", Float.MAX_VALUE );

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

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

in scientific notation: 3.40282346638528860e+38

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

in hexadecimal floating-point number with a significand and an exponent: 0x1.fffffep127

Alexander Pogrebnyak

Yes, it's also true for Float.

For more information check the manual here http://download.oracle.com/javase/7/docs/api/java/lang/Float.html

Yes it is, and for exactly the same reason as stated in the answer for the question you linked, Floats and Doubles use IEEE754 representation which is "symmetrical" due to the way they are stored.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!