猛的一看 int() round() math.floor() 这几个函数函数好像做的是同一件事情,很容易将他们弄混,下面是他们的一些不同之处:
- int()函数直接截去小数部分
- floor() 得到最接近原数但是小于原数的部分
- round()得到最接近原数的整数(返回为浮点类型)
如下面的例子:
import math
for eachnum in (.2,.7,1.2,1.7,-.2,-.7,-1.2,-1.7):
print"int(%.1f)\t%+.1f"%(eachnum,float(int(eachnum)))
print"floor(%.1f)\t%+.1f"%(eachnum,math.floor(eachnum))
print "round(%.1f)\t%+.1f"%(eachnum,round(eachnum))
print'-'*20
>>>
int(0.2) +0.0
floor(0.2) +0.0
round(0.2) +0.0
--------------------
int(0.7) +0.0
floor(0.7) +0.0
round(0.7) +1.0
--------------------
int(1.2) +1.0
floor(1.2) +1.0
round(1.2) +1.0
--------------------
int(1.7) +1.0
floor(1.7) +1.0
round(1.7) +2.0
--------------------
int(-0.2) +0.0
floor(-0.2) -1.0
round(-0.2) -0.0
--------------------
int(-0.7) +0.0
floor(-0.7) -1.0
round(-0.7) -1.0
--------------------
int(-1.2) -1.0
floor(-1.2) -2.0
round(-1.2) -1.0
--------------------
int(-1.7) -1.0
floor(-1.7) -2.0
round(-1.7) -2.0
--------------------
>>>
转自: http://blog.youkuaiyun.com/wyw0103/article/details/8491398