黑马程序员技术交流社区

标题: float表示范围为啥比long大????????? [打印本页]

作者: wangsenaho1649    时间: 2016-8-15 20:07
标题: float表示范围为啥比long大?????????
计算机底层不是二进制表示吗,float用4个字节表示,而Long用八个,为啥反而后者比前者大?????????????????????????????????
作者: double_x    时间: 2016-8-15 21:26
如果真按你说的那样  可能是float类型包含了许多小数
作者: 敲敲乐z    时间: 2016-8-15 21:33
视频里面好像有讲解为什么float比long要大,你去看看视频怎么说!
作者: 汪萌萌    时间: 2016-8-15 21:49
他的取值范围大啊
作者: 水月灬清影    时间: 2016-8-15 21:58
float用科学计数法,指数底数表示的。视频里提过一嘴,详细的介绍在刚开始那几天的code或者resource文件夹里有吧好像……


作者: 龙旋    时间: 2016-8-15 22:16
取值范围long的比float大,这有什么问题啊
作者: 乐仔其中    时间: 2016-8-15 22:29
它俩的存储结构不一样,float的存储结构比较特殊。你可以了解一下。
作者: Charlesl    时间: 2016-8-15 23:05
底层运算机制不同的
作者: li--yong    时间: 2016-8-15 23:12
因为float是小数类型,你想想小数有多少
作者: 冯潜001    时间: 2016-8-15 23:50
float 后面几位表示的是 几次幂
作者: bin931207    时间: 2016-8-15 23:59
浮点数,就是说小数点可以浮动,用同样的计算机存储位可以存储更大的数,但是会损失精度的,就是一些信息会丢失..
比如整数的最大值2147483647,变成float为2.147484E+09这样已经可以看到精度已经丢失.
一般的folat的存储方式是用前24位保存数值,后8位保存小数位.
作者: 冬天有点冷    时间: 2016-8-16 00:03
通过两个取值范围来判断,  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
作者: chensc    时间: 2016-8-16 06:40
学习学习!
作者: wangsenaho1649    时间: 2016-8-16 08:31
敲敲乐z 发表于 2016-8-15 21:33
视频里面好像有讲解为什么float比long要大,你去看看视频怎么说!

哦,我没咋看视频就是看了看笔记
作者: wangsenaho1649    时间: 2016-8-16 08:33
汪萌萌 发表于 2016-8-15 21:49
他的取值范围大啊

为啥呢,详解不待下载视频去了
作者: wangsenaho1649    时间: 2016-8-16 08:34
汪萌萌 发表于 2016-8-15 21:49
他的取值范围大啊

为啥呢,详解不待下载视频去了{:3_48:}
作者: 开心的流泪者    时间: 2016-8-16 15:03
确实是   java真是博大进深呀 。。。
作者: 冬冬宋    时间: 2016-8-16 20:11
long 占八个字节 -2^63~2^63-1
* 浮点型
* float 占四个字节 -3.403E38~3.403E38  单精度
作者: wangsenaho1649    时间: 2016-8-16 20:54
冯潜001 发表于 2016-8-15 23:50
float 后面几位表示的是 几次幂

收到哈哈。我么看视频只看了看笔记所以有的地方看不懂
作者: 霸王别急眼    时间: 2016-8-16 21:09
因为float是4个字节,而long是8个字节,所以后者比前者大
作者: itcoder    时间: 2016-8-16 21:24
float和long在内存中的存储结构不同,float实际的范围比long的大
作者: cloudzhang    时间: 2023-3-10 15:42
因为精度不够
比如 new Float(Integer.MAX_VALUE-1) 和 Integer.MAX_VALUE-1它两就不会相等
所以它虽然范围大,但是有些坑位始终占不到




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