概述
在Python3中,数学运算中的除法被分为两种,分别是“真除法”,即无论任何类型相除的结果都会保留小数点,和我们实际的数学运算结果一致,而“截断除法”,则是无论任何类型相除的结果都会省略结果的小数部分,剩下最小的能整除的整数部分。 以下是两种除法的基本形式:
代码语言:javascript复制# 真除法
X / Y
# 截断除法
X // Y
真除法
代码语言:javascript复制X = 8
Y = 2
Z = 3
print(X / Y)
print(X / Z)
示例结果:
代码语言:javascript复制4.0
2.6666666666666665
真除法的结果表明不论操作数的类型其相除结果都返回一个浮点结果。
截断除法
代码语言:javascript复制X = 8
Y = 2
Z = 3
S = -8
print(X // Y)
print(X // Z)
print(S // Y)
print(S // Z)
示例结果:
代码语言:javascript复制4
2
-4
-3
从示例中我们可以看到,截断除法并不是真的直接去掉小数点后面的数字,而是类似模块math
中的floor
方法,即向下取整,且负值的取整方式也是这样的。
import math
math.floor(2.0)
math.floor(2.6666666666666665)
math.floor(-2.0)
math.floor(-2.6666666666666665)
示例结果:
代码语言:javascript复制2
2
-2
-3
同样的模块math
中的ceil
方法可以实现浮点数的上取整。
import math
print(math.ceil(2.0))
print(math.ceil(2.6666666666666665))
print(math.ceil(-2.0))
print(math.ceil(-2.6666666666666665))
代码语言:javascript复制2
3
-2
-2