Python 中的整数除法

发布于 2024-12-11 18:27:46 字数 375 浏览 0 评论 0原文

我对 python 中的以下整数数学感到困惑:

-7/3 = -3 因为 (-3)*3 = -9 (-3)*3 = -9 (-3)*3 = -9 < -7 。我明白。

7/-3 = -3 我不明白这是如何定义的。 <代码>(-3)*(-3) = 9 > 7.。在我看来,它应该是-2,因为 (-3)*(-2) = 6 (-3)*(-2) = 6 (-3)*(-2) = 6 (-3)*(-2) = 6 7.

这是如何运作的?

I'm confused about the following integer math in python:

-7/3 = -3 since (-3)*3 = -9 < -7. I understand.

7/-3 = -3 I don't get how this is defined. (-3)*(-3) = 9 > 7. In my opinion, it should be -2, because (-3)*(-2) = 6 < 7.

How does this work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

等待我真够勒 2024-12-18 18:27:46

来自文档

对于(普通或长)整数除法,结果是整数。 结果始终向负无穷大舍入:1/2 为 0,(-1)/2 为 -1,1/(-2) 为 -1,(-1)/(- 2) 为 0。

-inf 舍入解释了您所看到的行为。

From the documentation:

For (plain or long) integer division, the result is an integer. The result is always rounded towards minus infinity: 1/2 is 0, (-1)/2 is -1, 1/(-2) is -1, and (-1)/(-2) is 0.

The rounding towards -inf explains the behaviour that you're seeing.

眸中客 2024-12-18 18:27:46

它是这样工作的:

int(x)/int(y) == math.floor(float(x)/float(y))

This is how it works:

int(x)/int(y) == math.floor(float(x)/float(y))
空袭的梦i 2024-12-18 18:27:46

扩展 aix 和 robert 的答案。

考虑这一点的最佳方法是对浮点结果进行向下舍入(向负无穷大):

-7/3 = Floor(-2.33) = -3

7/-3 = 下限(-2.33) = -3

Expanding on the answers from aix and robert.

The best way to think of this is in terms of rounding down (towards minus infinity) the floating point result:

-7/3 = floor(-2.33) = -3

7/-3 = floor(-2.33) = -3

a√萤火虫的光℡ 2024-12-18 18:27:46

/ 用于浮点除法
// 用于整数除法(返回整数)

并且Python将结果向下舍入

/ is used for floating point division
// is used for integer division(returns a whole number)

And python rounds the result down

挥剑断情 2024-12-18 18:27:46

Python 向下舍入。
7/3 = 2 (2+1/3)
-7/3 = -3 (-2+1/3)

Python rounds down.
7/3 = 2 (2+1/3)
-7/3 = -3 (-2+1/3)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文