• 欢迎来到我的博客
  • [email protected]

为什么计算机无法精确表示 0.1

学习笔记 tianlan 1年前 (2020-05-16) 779次浏览 0个评论 扫描二维码

下面的图展示了一个二进制小数的表达形式

为什么计算机无法精确表示 0.1

从图中可以看到,对于二进制小数,小数点右边能表达的值是 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128 … 1/(2^n)
现在问题来了, 计算机只能用这些个 1/(2^n) 之和来表达十进制的小数。
我们来试一试如何表达十进制的 0.2 吧。
0.01 = 1/4 = 0.25 ,太大
0.001 =1/8 = 0.125 , 又太小
0.0011 = 1/8 + 1/16 = 0.1875 , 逼近0.2了
0.00111 = 1/8 + 1/16 + 1/32 = 0.21875 , 又大了
0.001101 = 1/8+ 1/16 + 1/64 = 0.203125 还是大
0.0011001 = 1/8 + 1/16 + 1/128 = 0.1953125 这结果不错
0.00110011 = 1/8+1/16+1/128+1/256 = 0.19921875
已经很逼近了, 就这样吧。
这就是我说的用二进制小数没法精确表达10进制小数的含义。

转载于 https://blog.csdn.net/renwotao2009/article/details/51637163


天蓝, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:为什么计算机无法精确表示 0.1
喜欢 (3)
[[email protected]]
分享 (0)

您必须 登录 才能发表评论!