Python 3 中的 int() 和 floor() 有什么区别?
What is the difference between int() and floor() in Python 3?
在 Python 2 中,floor()
return 编辑了一个浮点值。虽然对我来说不是很明显,但我发现了一些解释,阐明了为什么 floor()
return 浮动可能有用(对于 float('inf')
和 float('nan')
这样的情况)。
然而,在Python3中,floor()
returns整数(和returns前面提到的特殊情况的溢出错误)。
那么 int()
和 floor()
现在有什么区别?
floor()
轮 向下 。 int()
截断。使用负数时区别很明显:
>>> import math
>>> math.floor(-3.5)
-4
>>> int(-3.5)
-3
对负数向下舍入意味着它们远离 0,截断使它们更接近 0。
换句话说,floor()
总是会低于或等于原始值。 int()
将更接近于零或等于。
我测试了两种方法的时间复杂度,是一样的
from time import time
import math
import random
r = 10000000
def floorTimeFunction():
for i in range(r):
math.floor(random.randint(-100,100))
def intTimeFunction():
for i in range(r):
int(random.randint(-100,100))
t0 = time()
floorTimeFunction()
t1 = time()
intTimeFunction()
t2 = time()
print('function floor takes %f' %(t1-t0))
print('function int takes %f' %(t2-t1))
输出为:
# function floor takes 11.841985
# function int takes 11.841325
在 Python 2 中,floor()
return 编辑了一个浮点值。虽然对我来说不是很明显,但我发现了一些解释,阐明了为什么 floor()
return 浮动可能有用(对于 float('inf')
和 float('nan')
这样的情况)。
然而,在Python3中,floor()
returns整数(和returns前面提到的特殊情况的溢出错误)。
那么 int()
和 floor()
现在有什么区别?
floor()
轮 向下 。 int()
截断。使用负数时区别很明显:
>>> import math
>>> math.floor(-3.5)
-4
>>> int(-3.5)
-3
对负数向下舍入意味着它们远离 0,截断使它们更接近 0。
换句话说,floor()
总是会低于或等于原始值。 int()
将更接近于零或等于。
我测试了两种方法的时间复杂度,是一样的
from time import time
import math
import random
r = 10000000
def floorTimeFunction():
for i in range(r):
math.floor(random.randint(-100,100))
def intTimeFunction():
for i in range(r):
int(random.randint(-100,100))
t0 = time()
floorTimeFunction()
t1 = time()
intTimeFunction()
t2 = time()
print('function floor takes %f' %(t1-t0))
print('function int takes %f' %(t2-t1))
输出为:
# function floor takes 11.841985
# function int takes 11.841325