【发布时间】:2015-02-27 03:50:30
【问题描述】:
观察下面的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
为什么会这样?
【问题讨论】:
-
Python 2 还是 Python 3?这一点很重要,因为默认情况下
/的语义在两者之间是不同的。 -
@Makoto 显然是 Python 2,从
print中缺少()来看。 -
这是在 ios 上使用 Pythonista 应用的 python 2.7
-
浮点数不能在计算机中精确表示。
-
我不明白为什么这很重要。变量“输出”等于 3.0。当它变成 int(3.0) 时,它等于 2,这是错误的。
标签: python floating-point int