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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

long类型是8字节, float是4字节, 一开始很疑惑为什么float的类型比较大, 各种查资料终于是理解了. (虽然一开始的时候老师说了这是计算机规定的, 但还是不理解, 总想着按道理小类型往大类型转换的时候是不会损失精度的, 但是long是8字节, 那如果一个long类型的值, 并且这个值对应的二进制码超过了四个字节呢, float就4个字节要怎么转? 一直疑惑在这里) 其实浮点型的编码规则是不同的, float是4字节32位bit, 但是float只显示8位数字, 超过的话就使用科学计数法, 这里面的24位二进制就表示了那8位显示的数字, 而还有8个二进制位是显示幂的, 8位可以表示0~255, 但是浮点型是遵循IEEE 754标准的, 要减127即表示的幂范围是-127~128, 所以它能表示的数值范围要比long大得多了, 只是它只显示8位有效数字, 所以超过8位的long类型的值会只保留8位使用科学计数法表示,.
新人刚接触Java的一点小理解, 希望能帮到跟我有一样疑惑的朋友.

12 个回复

倒序浏览
回复 使用道具 举报
有什么用吗?几乎用不到
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
zlwxf 发表于 2017-3-31 00:14
有什么用吗?几乎用不到

确实也没什么用吧,就是觉得有个问题没搞清楚不太爽
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
接触java好长时间了,但是这个问题我就没想过,看你写的我也是一脸蒙蔽
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
虽然根本看不懂,不过还是要赞一下
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
谢谢楼主分享,学习了
回复 使用道具 举报
回复 使用道具 举报
感觉是很厉害的样子,反正先赞一下吧
回复 使用道具 举报
回复 使用道具 举报
膜拜,懂了,非常感谢分享...
回复 使用道具 举报
我觉得其实就是占用内存空间大小不一样,占用的大,所以能放进去的数的范围就更大一些。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
因为float里存的是10的幂
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马