Java中Float的最大值?

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

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

是的 – 它与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 } } 

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

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

 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,000.000000

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

科学记数法:3.40282346638528860e + 38

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

带有效数字和指数的hex浮点数:0x1.fffffep127

是的,Float也是如此。

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

是的,并且由于与您链接的问题的答案中所述的完全相同的原因,Floats和Doubles使用IEEE754表示,由于它们的存储方式是“对称的”。