以下问题表明 Double 的最小值是-Double.MAX_VALUE
。Float(即-Float.MAX_VALUE
)也是如此吗?
问问题
98885 次
5 回答
30
是的,-Float.MAX_VALUE
是量级最大的负数。float
s 的表示方式与double
s 相同,只是存储空间的一半(以及随之而来的精度损失)。由于 IEEE 754 中的符号由单个位表示,翻转该位不会改变其余位可达到的总体幅度位。
于 2011-08-15T22:19:54.390 回答
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
}
}
于 2011-08-15T22:22:05.440 回答
15
编辑:我原来的答案似乎很不正确。感谢@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.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 );
十六进制浮点数,带有效数和指数:0x1.ffffep127
于 2016-06-23T17:49:18.217 回答
6
是的,Float 也是如此。
有关更多信息,请查看此处的手册http://download.oracle.com/javase/7/docs/api/java/lang/Float.html
于 2011-08-15T22:21:13.860 回答
1
是的,并且出于与您链接的问题的答案中所述完全相同的原因,浮点数和双精度数使用 IEEE754 表示,由于它们的存储方式,它是“对称的”。
于 2011-08-15T22:24:39.887 回答