观察下面的python程序
def goo(y,x):
y = float(y)
x = float(x)
yup = (y - x - 1) / x
yup = str(yup)
yup = yup.split(".")
decimal = "." + yup[1]
decimal = float(decimal)
output = decimal / (1/x)
print output
print int(output)
goo(9,5)
当程序执行“打印输出”时答案是3.0
当程序执行“print int(output)”时,答案是2
“print int(output)”应该执行以传递 3,而不是 2
为什么会发生这种情况?
默认为print
语句是将值四舍五入到最接近的值。int()
截断。
>>> print 2.99999999999999
3.0
>>> print int(2.99999999999999)
2
如果您想查看更准确的表示,请使用repr
.
>>> print repr(2.9999999999999)
2.9999999999999
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)