A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

整型运算中,long类型和float类型一起运算时,long类型会默认转换给float类型进行运算。那么问题来了   
  ,long类型是8个字节,float类型是4个字节,默认转换为什么不会损失精度呢?

7 个回复

正序浏览
自己计算一下float和long的范围就知道了,如果在深入点,就是内存分配不同,分符号位、指数为和小数位,有兴趣可以研究一下。
回复 使用道具 举报
灵动 中级黑马 2016-9-15 13:35:43
7#
我只能说是底层运算结构不同!
回复 使用道具 举报
a869588615 发表于 2016-9-15 11:32
long使用4个字节存储,但因为也是整数,其中最高位是符号位,所以最大值只有2的63次方-1;float使用4个字节 ...

说的有些不清楚了,是long的最大值就是2的63次方-1,float的最大值为3.40E+38。
回复 使用道具 举报
老师说的,小数和整数的存储不一样的.float存储范围远远大于long类型
回复 使用道具 举报
long使用4个字节存储,但因为也是整数,其中最高位是符号位,所以最大值只有2的63次方-1;float使用4个字节存储,一共32位,其中第1位是符号位,接下来8位用来表示指数,剩下的23位用来表示尾数,用8位表示指数,范围是-127~128次方,远远高于long的63次方,即float的精度比long高,所以在转换的时候不会损失精度。
回复 使用道具 举报
他们的存储放肆不同啊!
回复 使用道具 举报
这个上课老师有讲吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马