代码之家  ›  专栏  ›  技术社区  ›  kilojoules

为什么python向下舍入?例如-12/10=-2

  •  0
  • kilojoules  · 技术社区  · 10 年前

    我看到了 twitter post 指出在Python中-12/10=-2。这是什么原因造成的?我认为答案应该是一。为什么python“字面上”是这样的?

    >>> -12/10
    -2
    >>> 12/10
    1
    >>> -1*12/10
    -2
    >>> 12/10 * -1
    -1
    
    2 回复  |  直到 10 年前
        1
  •  5
  •   f.rodrigues    10 年前

    这是由于 int 四舍五入。(又名 Floor division )

    >>> -12/10
    -2
    >>> -12.0/10
    -1.2
    >>> 12/10
    1
    >>> 12.0/10
    1.2
    
        2
  •  4
  •   J. Doe    10 年前

    这被称为楼层划分(也称为int划分)。在Python 2中,这是 -12/10 在Python 3中,默认行为是使用浮点除法。要在Python 2中启用此行为,请使用以下import语句:

    from __future__ import division
    

    要在导入此模块的Python 3或Python 2中使用楼层划分,请使用 // .

    更多信息可在 Python documentation ,“PEP 238:改变部门运营”。