为什么大部分浮点数字在计算机中是不精确的

计算机是使用二进制运算的,程序中的十进制会先转为二进制,在进行运算。

我们先来看看十进制的浮点数在计算机是怎样转换为二进制的

整数转整数,小数转小数

整数转整数机制与十进制整型转二进制一致

小数转小数是将小数部分乘以2,如果结果大于1.0,则将取整数部分1按顺序写道小数点后,如果结果小于1.0,则将取整数部分0按顺序写道小数点后,直至结果等于1.0结束

举例:0.2(十进制)

0.2*2=0.4 取整数部分:0

0.4*2=0.8 取整数部分:0

0.8*2=1.6 取整数部分:1

0.6*2=1.2 取整数部分:1

0.2*2=0.4 取整数部分:0

0.4*2=0.8 取整数部分:0

0.8*2=1.6 取整数部分:1

0.6*2=1.2 取整数部分:1

.

.

.

.

根据演算过程,不难想象,它会无限循环0011这个结果,所以计算机在遇到这种情况下,都是取无限接近于原值的近似值,从而导致出现精度损失的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值