【问题标题】:Difference between "a//b" and "int(a/b)" [duplicate]“a//b”和“int(a/b)”之间的区别[重复]
【发布时间】:2019-12-18 17:26:07
【问题描述】:

我知道a/b 是浮点除法,a//b 是 Python 中的地板除法。
可以看出,如果分子和分母都是正数,int(a/b) 的结果也与地板除法相同。但是尝试-a//bint(-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


【解决方案1】:

来自intdocs

对于浮点数,这将截断为零。

来自//docs

整数的除法产生一个浮点数,而整数的下除法产生一个整数;结果是对结果应用“floor”函数的数学除法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 2012-06-26
    • 2017-12-24
    相关资源
    最近更新 更多