负整数除法令人惊讶的结果

发布于 2021-01-29 17:57:59

在我的应用程序中,我遇到了以下问题,并对结果感到惊讶:

8/-7=-2 (两个整数)。

这是什么意思?

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    对于实际值,即8.0/(-7.0)结果为-1.143

    您使用整数除法得到的结果将向下舍入为的更负值-2。(也称为“地板部门”)

    这就是为什么您会得到以下令人困惑的答案的原因:

    >>> 8/(-7)
    -2
    >>> 8/7
    1
    

    注: 这是在Python 3中,其中的结果,“固定”8/(-7)-1.143。因此,如果您没有理由使用Python 2,则应该升级。;)

    在Python 3中,如果仍然需要整数除法,则可以使用//运算符。这将为您提供与8/(-7)Python 2相同的答案。

    这是关于此主题的Python增强建议:PEP 238-更改除法运算符



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看