我在查看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__
让我解释一下我在上面的片段中使用的最后两张照片。
令人惊讶的是,当前输出
x现在是:33.0
< type'float'>
float
我期待
x现在是:33
< type'int'>
int
我没有想法。我错过了什么?
P.S。对于任何感兴趣的人, LIVE VERSION
答案 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__