黑马程序员技术交流社区
标题:
Java基础班, 终于明白为什么float的类型比long的类型大了.
[打印本页]
作者:
zeng1002
时间:
2017-3-30 23:57
标题:
Java基础班, 终于明白为什么float的类型比long的类型大了.
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的一点小理解, 希望能帮到跟我有一样疑惑的朋友.
作者:
土豪金
时间:
2017-3-31 00:11
豁然开朗
作者:
zlwxf
时间:
2017-3-31 00:14
有什么用吗?几乎用不到
作者:
zeng1002
时间:
2017-3-31 00:15
zlwxf 发表于 2017-3-31 00:14
有什么用吗?几乎用不到
确实也没什么用吧,就是觉得有个问题没搞清楚不太爽
作者:
WPH
时间:
2017-3-31 00:16
接触java好长时间了,但是这个问题我就没想过,看你写的我也是一脸蒙蔽
作者:
fei19890221
时间:
2017-3-31 00:36
虽然根本看不懂,不过还是要赞一下
作者:
linzpcom
时间:
2017-3-31 02:57
谢谢楼主分享,学习了
作者:
starhub
时间:
2017-3-31 10:05
豁然开朗
作者:
一条鱼
时间:
2017-3-31 12:31
感觉是很厉害的样子,反正先赞一下吧
作者:
海天酱油
时间:
2017-3-31 18:29
懂不懂先mark
作者:
轻风24
时间:
2017-4-1 02:18
膜拜,懂了,非常感谢分享...
作者:
17631331017
时间:
2017-4-1 09:52
我觉得其实就是占用内存空间大小不一样,占用的大,所以能放进去的数的范围就更大一些。
作者:
剑桥子卿卿
时间:
2017-4-17 09:03
因为float里存的是10的幂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2