【发布时间】:2019-12-18 17:26:07
【问题描述】:
我知道a/b 是浮点除法,a//b 是 Python 中的地板除法。
可以看出,如果分子和分母都是正数,int(a/b) 的结果也与地板除法相同。但是尝试-a//b 和int(-a/b) 会产生不同的结果。内部运作有哪些?
>>> int(-5/3)
-1
>>> -5//3
-2
int(a/b) 与同等楼层划分(即a//b)有何不同?
【问题讨论】:
-
floats默认舍入为零,所以int(-5/3)~int(-1.66)~-1。 -
@hiroprotagonist 我认为这不是一个完全重复的问题,但重复的答案也回答了这个问题。
-
@Selcuk 第一个答案解决了我想说的所有问题?如果您不同意,我将重新提出问题。
-
所以
int(a/b)向零舍入,而a//b降低获得的值?无论如何,这里提到的问题并没有在那里确切地被问到。 -
@hiroprotagonist 正如我在评论中提到的,我同意 answer 就足够了,即使问题并不完全相同。不反对保持原样。
标签: python casting floor-division