Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:int(3.0)=2_Python_Floating Point_Int - Fatal编程技术网

Python:int(3.0)=2

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

观察下面的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 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,这是错误的。啊,我明白了。我不知道这些事。谢谢啊,我明白了。我不知道这些事。谢谢