float的精度为什么是7位详解

关于float精度为什7位,相信还有很多人没有想明白,是智商原因或是理解力的不同还是有什么其他原因吗,我觉得都不是,我们只是陷进了自己的想法里出不来而已,我也是想了很久,这里我要用比较直白的话,根据自己的理解来描述一下float的精度为什么是7,如果有说错的地方,请大家直接指出。

首先看一下float由二进制转换为十进制
在这里插入图片描述
从这里可以看出符号位占一位,指数位占8位,数值位占23位。这是规定的所以不用再问为什么是这样了。

下面重点为什么float的精度是7呢?以下为个人理解,只是为了方便理解为什么精度是7。
因为float类型的数值由后面的23位来决定,所以float类型在二进制的时候的精度位23位,因为23位以内的数都可以通过这23位准确的表示出来,这一点理解起来应该没什么问题了吧。
而我们所说的精度7位是指的十进制的时候的精度。因为float类型的数值由二进制下的后23位决定的,而这后23位表示的十进制的数最大为2^23=8388608也就是说在二进制下能表示的准确的23位的数转换 到十进制下最大的数是7位的,数值是多少不重要,因为这个数是在十进制下是7位,所以float在十进制下的精度位7位。再说白一点,二进制下能表示的最大的准确的数值转换为十进制是7位。

我觉得我解释的已经很通俗了,希望大家都能理解,如果有说错的地方请大家指出。

  • 14
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值