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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zeng1002 中级黑马   /  2017-3-26 18:27  /  1103 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么8字节的long类型会比4字节的float类型精度低呢?新手表示不理解,老师前面说高精度强制转换成低精度时会丢掉前面多出的位数,那么float才4字节,long这种8字节要怎么向float强转呢?
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端

5 个回复

倒序浏览
一个整数型,一个小数型,有可比性吗?肯定是带小数的精度高啊
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
long是8个字节比float字节大,那只是代表它能表示的整数型的数据范围大而已
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
这就需要区分精确度和储存储存大小的区别,我举个例子 1/3等于多少,0.3或者0.33,或者一直循环下去,0.33这个数相对0.3是不是离准确值更接近,这个就是精确度,你要是把0.33换成0.3,是不是精确度就低了,那么,精确度和大小有什么关系,你就需要了解整型和浮点型的构成,和对2进制的了解,1个字节可以换算成8个位,每个数都是这些二进制位组成,而float的这么多位中,一部分表示小数部分,一部分表示整数,而long是整型,每个位都可以表示2个数,除了首位表示正负,就可以表示一个范围比float大很多的数,但是,精确度和表示范围没有关系,只和小数点后面保留的位和方法里面算法有关
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
785026612 发表于 2017-3-28 02:46
这就需要区分精确度和储存储存大小的区别,我举个例子 1/3等于多少,0.3或者0.33,或者一直循环下去,0.33 ...

谢谢分享!
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
你以为虾米多了就能打的过鱼吗?float的四个字节是在^后面的,其值可达数千次方,不是一个级别的,而long只是最高8位数而已
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马