看到这么一道题
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