Python-print(1.2-1.0)#Flase

    技术2024-01-02  88

    看到这么一道题

    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

    Processed: 0.010, SQL: 9