Python:int(3.0)=2
观察下面的python程序Python:int(3.0)=2,python,floating-point,int,Python,Floating Point,Int,观察下面的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(o
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 InOutput时,答案是2
应执行打印输入输出以交付3,而不是2
为什么会发生这种情况?打印语句的默认值是将值四舍五入到最接近的值。int截断
>>> print 2.99999999999999
3.0
>>> print int(2.99999999999999)
2
如果要查看更精确的表示,请使用repr
print语句的默认值是将值四舍五入到最接近的值。int截断
>>> print 2.99999999999999
3.0
>>> print int(2.99999999999999)
2
如果要查看更精确的表示,请使用repr
Python 2还是Python 3?这一点很重要,因为默认情况下/的语义在两者之间是不同的。@Makoto显然是Python 2,从印刷品中缺少的内容来看。这是Python 2.7,在iosFloats上使用Pythonista应用程序无法在计算机中准确表示。我不明白这有什么关系。变量输出等于3.0。当它变成int3.0时,它等于2,这是错误的。是Python 2还是Python 3?这一点很重要,因为默认情况下/的语义在两者之间是不同的。@Makoto显然是Python 2,从印刷品中缺少的内容来看。这是Python 2.7,在iosFloats上使用Pythonista应用程序无法在计算机中准确表示。我不明白这有什么关系。变量输出等于3.0。当它变成int3.0时等于2,这是错误的。啊,我明白了。我不知道这些事。谢谢啊,我明白了。我不知道这些事。谢谢