0
我有这样的代码:LEN()返回不正确的值
print(len(str(0.000110011001100110011001100110011001100110011001100)))
,这回22 然而,当我有这样的代码:
print(len("0.000110011001100110011001100110011001100110011001100"))
这回53 为什么?
我有这样的代码:LEN()返回不正确的值
print(len(str(0.000110011001100110011001100110011001100110011001100)))
,这回22 然而,当我有这样的代码:
print(len("0.000110011001100110011001100110011001100110011001100"))
这回53 为什么?
Python无法存储无限精度的浮点数。它们在一定的值后被截断。要了解更多,你可以check out the documentation。
str(0.000110011001100110011001100110011001100110011001100)
第一个Python会解释0.000110011001100110011001100110011001100110011001100作为一个浮点数,然后将其转换为字符串。
事实证明,0.000110011001100110011001100110011001100110011001100
被解释为0.00011001100110011001
,然后将其转换为22个字符的字符串。
你检查过什么'str(0.000110011001100110011001100110011001100110011001100)'是? – user2357112
您创建了一个浮动对象;这是*不是字符串*。该浮点对象的字符串表示形式不包含尽可能多的数字,因为浮点数值是一个近似值,并且根本没有精确度来捕获该值*精确*。 –