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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

18253105329

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 18253105329 中级黑马   /  2015-12-17 11:56  /  3181 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
long类型占8个8位,float占4个8位。为什么能够自动将long类型转换为float型,而不丢失精度呢。

最佳答案

查看完整内容

你看这张图,float比long的还要多,所以低转高就不会丢失了。。应该是这样的,我再去确认下各自占的空间就知道了~等我~

15 个回复

倒序浏览
你看这张图,float比long的还要多,所以低转高就不会丢失了。。应该是这样的,我再去确认下各自占的空间就知道了~等我~

20140531150520890.png (9.26 KB, 下载次数: 24)

20140531150520890.png
回复 使用道具 举报
你确定不丢失精度吗?是不是因为你的数据正好符合float的范围,所以没有删减位造成没有损失精度的
回复 使用道具 举报
zcbcba123 发表于 2015-12-17 12:01
你确定不丢失精度吗?是不是因为你的数据正好符合float的范围,所以没有删减位造成没有损失精度的 ...

当然不会,这是我自学课本上的自动转换实例
回复 使用道具 举报
zcbcba123 发表于 2015-12-17 12:05
你看这张图,float比long的还要多,所以低转高就不会丢失了。。应该是这样的,我再去确认下各自占的空间就 ...

这是自动转换的等级关系,我知道。问题就是这个,float只占4个8位,为什么能承载long的8个8位的数据呢
回复 使用道具 举报
18253105329 发表于 2015-12-17 12:08
这是自动转换的等级关系,我知道。问题就是这个,float只占4个8位,为什么能承载long的8个8位的数据呢 ...

确实好奇怪。。。为什么float占的字节少却排在高位呢。。。好问题~
回复 使用道具 举报
zcbcba123 发表于 2015-12-17 12:05
你看这张图,float比long的还要多,所以低转高就不会丢失了。。应该是这样的,我再去确认下各自占的空间就 ...

我找到了之前有人问过类似问题,明白了。还是谢谢你
回复 使用道具 举报
18253105329 发表于 2015-12-17 12:08
这是自动转换的等级关系,我知道。问题就是这个,float只占4个8位,为什么能承载long的8个8位的数据呢 ...

哥们儿,我找到答案了,好惊喜!http://wenda.haosou.com/q/1386588105060030
回复 使用道具 举报
18253105329 发表于 2015-12-17 12:13
我找到了之前有人问过类似问题,明白了。还是谢谢你

谢谢你的问题,我也学到了~真的是个好问题~
回复 使用道具 举报
好问题呀
回复 使用道具 举报
雨来 高级黑马 2015-12-24 20:15:47
11#
学习一下,问题,上面的表不代表理论中啊,你看一张表就能懂了啊
回复 使用道具 举报
666666666666
回复 使用道具 举报
cj286 中级黑马 2015-12-26 13:34:39
13#
6666666666
回复 使用道具 举报
float:4个字节
        * IEEE754
        * 4个字节是32个二进制位
        * 1位是符号位
        * 8位是指数位
        * 00000000   11111111
        * 0到255
        * 1到254
        * -126到127
        * 23位是尾数位
        * 每个指数位减去127
回复 使用道具 举报
float表示的数据范围比long的范围要大
                * long:2^63-1
                * float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1
回复 使用道具 举报
好题.学到了,都是干货.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马