计算机导论作业题
x = 9876543210987654321
print(3/x == 0) Flase
print(3/x+1 == 1) True
x = 9876543210
print(3/x + 1 == 1) Flase
原因解释
- 在 Python 使用的 IEEE 754 标准(52M/11E/1S)中,8字节64位存储空间分配了52位来存储浮点数的有效数字,11位存储指数,1位存储正负号。
- 可以看到当 x = 9876543210987654321 x = 9876543210987654321 x=9876543210987654321时, 3 / x 3/x 3/x并不等于0,这是因为浮点数的精度指的是从第一个不为0的数开始之后的位数,假设 3 / x 3/x 3/x化为二进制之后是 0.000000000000000000000000000000000000000000000000101010101010101 0.000000000000000000000000000000000000000000000000101010101010101 0.000000