表达式 6 // 4
产生 1
,其中 floor 除法在除以数字后产生整数。
但是对于负数,为什么 -6 // 4
返回 -2
?
原文由 Naz Islam 发布,翻译遵循 CC BY-SA 4.0 许可协议
楼层划分也将向下舍入到下一个最低的数字,而不是下一个最低的绝对值。
6 // 4 = 1.5
,向下舍入为 1,向上舍入为 2。
-6 // 4 = -1.5
,向下舍入为 -2,向上舍入为 -1。
原文由 K. Akyoobd 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
//
运算 符明确地确定了结果。引用 二进制算术运算 文档:下限与四舍五入为 0 不同;地板总是移动到 _较低的整数值_。请参阅
math.floor()
功能:对于
-6 // 4
,首先计算-6 / 4
的结果,所以-1.5
。地板然后移动到较低的整数值,所以-2
。如果您想改为向零舍入,则必须明确地这样做;您可以使用
int()
真正除法的函数来做到这一点:int()
删除小数部分,因此始终向零舍入。