Python-print(1.2-1.0) #Flase

看到这么一道题

Print(1.2-1.0)
A.True B.Flase 

答案:B

在解决这道题之前,我们先看看十进制如何转换二进制

十进制转二进制有两种情况
·十进制整数转二进制
·十进制小数转二进制

十进制整数转二进制:短除法,即除2取余
如:20

20/2=10·····0
10/2=5······0
5/2=2·······1
2/2=1·······0
1/2=0·······1

越往下,越高位
由此二进制为:10100

小数十进制转二进制钱:乘2取整法
如:0.8

方法如下:
0.8*2=1.6·····1(取整)
(1.6-1)*2=1.2

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
···

位数排列一样
二进制即:0.10011…

不难看出十进制小数转二进制是个无限不循环小数,在计算机实际运算中,会先将十进制转二进制后再进行运算,再转十进制。在此过程,二进制的无限数位会被计算机自动舍弃一部分位数,因此1.2-1.0只能近似于0.2

故输出Flase

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值