返回

python求余截断除法floor除法向下一层截断向下舍入

人工智能

截断除法通常也被称为floor除法,但更准确的说法是floor除法,它把结果向下截断到它的下层,即真正结果之下的最近的整数。截断除法对正数和负数同样适用,它的直接效果是向下舍入,并不是严格地截断。要查看其中的差异,可以使用Python的math模块。

import math
# 计算11除以3的余数
remainder = math.fmod(11, 3)
print("remainder:", remainder)

# 计算11除以3的floor除法结果
floor_result = math.floor(11 / 3)
print("floor_result:", floor_result)

# 计算11除以3的截断除法结果
trunc_result = 11 // 3
print("trunc_result:", trunc_result)

输出结果如下:

remainder: 2.0
floor_result: 3.0
trunc_result: 3

从输出结果可以看到,remainder是11除以3的余数,floor_result是11除以3的floor除法结果,trunc_result是11除以3的截断除法结果。截断除法和floor除法对于正数来说,结果是一致的,都是向下舍入到最近的整数。

但是,对于负数来说,截断除法和floor除法就有区别了。

import math
# 计算-11除以3的余数
remainder = math.fmod(-11, 3)
print("remainder:", remainder)

# 计算-11除以3的floor除法结果
floor_result = math.floor(-11 / 3)
print("floor_result:", floor_result)

# 计算-11除以3的截断除法结果
trunc_result = -11 // 3
print("trunc_result:", trunc_result)

输出结果如下:

remainder: -2.0
floor_result: -4.0
trunc_result: -4

从输出结果可以看到,remainder是-11除以3的余数,floor_result是-11除以3的floor除法结果,trunc_result是-11除以3的截断除法结果。截断除法将-11除以3的结果截断为-4,而floor除法将-11除以3的结果向下舍入为-4。

因此,可以看出截断除法与floor除法之间的差异,截断除法更准确的说法是向下截断除法,floor除法向下舍入,并且向下截断除法和floor除法对于负数也同样有效。