【问题标题】:python negative number divide the number than itself the result is always -1 [duplicate]python负数除以本身的数字结果总是-1 [重复]
【发布时间】:2020-07-13 07:17:30
【问题描述】:

我有一个关于python3中负数除法的问题

当我计算 6//(-132) 为什么它是 -1 而不是 0 时。

python处理这种划分的机制是什么?

【问题讨论】:

  • 你正在做一个整数除法,结果总是十进制版本的下限。由于你所有的除法都在 0 和 -1 之间,你总是得到 -1
  • 哦,我明白了,我明白了,谢谢你们

标签: python-3.x


【解决方案1】:

实际上,您使用的不是 Python 3.x,而是 Python 2.x,您看到的是整数除法的结果,这是当时的默认值:

>>> 1/(-2) 
-1
>>> -1/2
-1
>>> -23/45
-1

要在 Python 2.x 中获得预期结果,请尝试以下操作:

from __future__ import division

>>> 1/(-2) 
-0.5
>>> -1/2
-0.5
>>> -23/45
-0.5111111111111111

现在,对于编辑后的问题:当您进行整数除法// 时,该值将向下舍入为负值-1。 (这也称为“地板分割”)。有关详细信息,请参阅此post

>>> 6 / (-132)
-0.045454545454545456
>>> 6 // (-132)
-1

【讨论】:

  • 哦抱歉是python2,但是对于python3为什么6//(-132)是-1,我会编辑我的问题
  • 我为新问题编辑了答案,
【解决方案2】:

在余数运算中,python总是以底数或最大整数函数作为答案

【讨论】:

    【解决方案3】:

    很可能您没有使用 python 3,因为在我空闲的 python 3.8 on 1/-2 它显示 -0.5 和 -1/2 的情况下相同

    【讨论】:

    • 哦抱歉是python2,但是对于python3为什么6//(-132)是-1,我会编辑我的问题
    猜你喜欢
    • 2015-12-13
    • 1970-01-01
    • 2013-10-31
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 2019-06-20
    相关资源
    最近更新 更多