在理解round()函数时我缺少什么?

时间:2015-06-16 13:48:34

标签: python rounding built-in

我在查看python中的online doc for round() function,其中说,

  

round(number[, ndigits])

     

....如果使用一个参数调用,则返回值为整数,否则与数字类型相同。

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

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

让我解释一下我在上面的片段中使用的最后两张照片。

  1. 第二次印刷是通过反复试验的方法。 (今天是Python的第1天)
  2. 参考this answer
  3. 添加第三个印刷品

    令人惊讶的是,当前输出

      

    x现在是:33.0
    < type'float'>
    float

    期待

      

    x现在是:33
    < type'int'>
    int

    我没有想法。我错过了什么?

    P.S。对于任何感兴趣的人, LIVE VERSION

2 个答案:

答案 0 :(得分:8)

在python 2.x中,round总是返回一个浮点数。

根据print语句的语法判断,你在python 2.x上。

答案 1 :(得分:0)

而不是使用round ...!试试这个因为round函数是为了舍入浮点值..

然而圆形和类型转换为int都做同样的工作@ background

希望这会有所帮助.. !!

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

y=32.7
x=int(y)
print 'x is now :',x
print str(type(x))
print type(x).__name__