小数存储到计算机中为什么会有精度损失

  大家应该都知道小数转二进制的方法吧,乘2取整,得到积,将积的整数部分取出,再用余下的小数部分乘2,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数为0,或者达到所要求的精度为止。

在这里插入图片描述

  可以看到每次乘2都会取出一个整数,将这些整数顺序排列就能得到小数的二进制表示。上面的例子乘2最终可以会停止,但是如果换一个数,例如0.56,我们再来看一下。

在这里插入图片描述

  如果我们一直乘2下去,会得到无限个整数的序列。但是,计算机中不可能提供无限个bit位去存储它们,因而造成了精度损失。但是又为了尽可能保持数据的精度,提供了两种数据类型。float(单精度)和double(双精度),我们需要根据需求去选择浮点数的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值