我用Python编写了以下代码:
x=345**3
z=float(x)**(1.0/3.0)
print z
print z.is_integer()
输出为:
345.0
False
这是为什么?我希望输出是
True
。 最佳答案
因为z
并不完全是345.0
:
>>> x = 345 ** 3
>>> z = float(x) ** (1.0 / 3.0)
>>> print z
345.0
>>> (345.0).is_integer()
True
到目前为止,一切都很好:
>>> z.is_integer()
False
>>> z == 345.0
False
>>> z
344.9999999999999
由于
str
和repr
形式的float
不同,这只是显示问题:>>> z.__repr__()
'344.9999999999999'
>>> z.__str__()
'345.0'
关于python - 为什么is_integer()方法不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26201816/