面试题

为什么在Python里1.1+2.2≠3.3? -------------------------------- 这个问题里面的关键,不在于Python,而是1.1里面的0.1 二进制世界是如何表示0.1的呢? 0.00011001100110011001100110011……0011 无限循环 你把全世界的硬盘都放在一起, 也存不下 0.1 的二进制小数. Python 和 C 一样, 采用 IEEE 754 规范来存储浮点数,每个小数的存储(但是不是所有的), 都会伴有精度的丢失 0.1 在计算机存储中真正的数字是 0.00011001100110011001100110011001100110011001100110011001 0.2是 0.00110011001100110011001100110011001100110011001100110011 0.1+0.2= 0.01001100110011001100110011001100110011001100110011001100(二进制) 0.1+0.2=0.30000000000000004(十进制) 自己算一下 1.1+1.2=3.3000000000000003(十进制)