黑马程序员技术交流社区

标题: 为什么int 的最大值小于float的最大值 [打印本页]

作者: 戴振良    时间: 2012-3-25 15:28
标题: 为什么int 的最大值小于float的最大值
class TTest {
       
        public static void main(String args[]) {
                System.out.println(Integer.MAX_VALUE>Float.MAX_VALUE); //输出为false
        }
}

int 和 float型都是4个字节,float里包括小数,为什么他的取值还能比int型的大呢?
作者: 朱鹏举    时间: 2012-3-25 15:50
int 和 float型都是4个字节,float里包括小数,但是float使用的是科学计数法,其中E38表示10的38次方。表示的范围比int大。
作者: 李柯    时间: 2012-3-25 15:57
其实是float的存储方式的问题,   它是用的IEEE754的标准。
作者: 马强    时间: 2012-3-25 17:50
int型好理解,-2的31次方到2的31次方减1
而float,iee754我记得是前9位是指数,也就是表示10的次方数(包括正次方和负次方),而后23位表示的是小数并且是小于1的小数(默认有1),用后面的小数乘上前面的幂的次数,表示的范围,要比int大,而且精度更高,因为是小数点后位数更多,这么说能理解吗。
作者: 戴振良    时间: 2012-3-27 17:18
既然float包括小数都能表示这么大的数,为什么int就不也用点什么其他的表示方式可以表示更大的整数呢?反正都是4个字节!{:soso__108243756926991508_3:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2