关于python:理解round()函数时错过了什么?

What am I missing in understanding round() function?

我在看python中的round()函数的在线文档,上面说,

round(number[, ndigits])

....The return value is an integer if called with one argument, otherwise of the same type as number.

所以,我写了下面的代码。

1
2
3
4
x = round(32.7)
print 'x is now : ', x
print str(type(x))
print type(x).__name__

让我解释一下我在上面的片段中使用的最后两个印刷品。

  • 第二次印刷采用试错法。(今天是我为Python准备的第一天)
  • 第三张纸是参照这个答案加上去的。
  • 令人惊讶的是,电流输出是

    x is now : 33.0 float

    我期待着

    x is now : 33 int

    我没主意了。我错过了什么?

    P.S.对于任何感兴趣的人,LIve版本


    在python 2.x中,round总是返回一个float。

    根据打印语句的语法判断,您使用的是python 2.x。


    而不是用圆形的…!尝试这样做是因为round函数是对float值进行四舍五入。

    然而,对int的round和type强制转换都在background下执行相同的工作

    希望这有帮助….!

    1
    2
    3
    4
    x = int(32.7)
    print 'x is now :',x
    print str(type(x))
    print type(x).__name__

    1
    2
    3
    4
    5
    y=32.7
    x=int(y)
    print 'x is now :',x
    print str(type(x))
    print type(x).__name__