当前位置:  开发笔记 > 编程语言 > 正文

Python 3中的整数除法 - 带有负数的奇怪结果

如何解决《Python3中的整数除法-带有负数的奇怪结果》经验,为你挑选了2个好方法。

我是Python新手,我现在正在学习操作员.我明白:

/运营商用于floating point division

//integer division.

例:

7//3 = 2

并且7//-3=-3.为什么答案-3

我被困在这里.



1> Holt..:

//是不是整数除法,但地板师:

7/-3  -> -2.33333...
7//-3 -> floor(7/-3) -> floor(-2.33333...) -> -3

PEP 238改变除法运算符:

//运营商将提供给请求地板分工明确.

另请参阅为什么Python的Integer Division Floors(感谢@eugene y) - 基本上7//-3-7//3,所以你希望能够写:

-7 = 3 * q + r

使用q整数(负,正或零)和r整数0 <= r < 3.这只适用于q = -3:

-7 = 3 * (-3) + 2



2> 小智..:

//地板部门的运营商.

这意味着,分割完成后的"地板"函数被应用(从分割检索到的值向下舍入为最接近的整数无论的小数部分是大于还是小于0.5)

至于你的例子,要注意,对于否定答案,地板除法运算符仍将向下舍入(例如-5/2 - > -2.5 - > -3).

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有