len()返回不正确的值

时间:2017-10-11 17:43:25

标签: python python-3.x

我有这段代码:

print(len(str(0.000110011001100110011001100110011001100110011001100)))

这回归22。 但是当我有这个代码时:

print(len("0.000110011001100110011001100110011001100110011001100"))
这回归53。 为什么呢?

1 个答案:

答案 0 :(得分:5)

Python无法存储无限精度浮点数。它们在某个值后被截断。要了解详情,您可以check out the documentation

str(0.000110011001100110011001100110011001100110011001100)

第一个python会将 0.000110011001100110011001100110011001100110011001100 解释为浮动数字,然后将其转换为字符串。

事实证明,0.000110011001100110011001100110011001100110011001100被解释为0.00011001100110011001,然后将其转换为22个字符的字符串。