错了,Java中float位数为32。第一位表示符号,2-9位表示指数范围,10-32表示精度。也就是说float最大支持的2的23次方,由于整数部分隐藏了一位,所以可以乘以2。其中2的23次方为8388608,加上隐藏的那一位是2*8388608,所以float范围最大能保证8位数,能准确保证的是7位数。double精度是52位,原理同样,能保证16-17位数的精确。所以有时候虽然数字在float范围内,却超出了精度,故float不能比较大小。
float范围是由指数的位数来决定的。
float是4个字节(32位)
无符号float取值范围:0 ~ 2的32次方
有符号float取值范围:-2的31次方 ~ 2的31次方
在Java中8种基本类型都有各自的包装类,float对应的类为Float
Float.MAX_VALUE;可以获得最大值
Float.MIN_VALUE;可以获得最小值
java.lang.Float定义的常量
public static final float MAX_VALUE;
public static final float MIN_VALUE;
float是单精度浮点型数据,所占字节数为4位,也就是32个比特。
这32个比特中:
有一个用来存储符号,也就是存储这个数字的正负,0表示正,1为负。
存储一个浮点型的数据,系统将数据分两部分存储,分别是小数部分和指数部分。
float型数据能得到6位有效数字,数值范围为-3.4*10的-38次幂到3.4*10的38次幂