首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3中的整数除法-带负数的奇怪结果

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

Stack Overflow用户
提问于 2015-12-11 07:02:02
回答 2查看 3.8K关注 0票数 18

我是Python新手,现在正在学习操作符。我了解到:

  • /运算符用于floating point division
  • // for integer division.

示例:

代码语言:javascript
复制
7//3 = 2

7//-3=-3。为什么答案是-3

我被困在这里了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-11 07:04:58

//不是整数除法,而是除法:

代码语言:javascript
复制
7/-3  -> -2.33333...
7//-3 -> floor(7/-3) -> floor(-2.33333...) -> -3

关于修改除法运算符的PEP 238

//操作符可以明确地请求楼层分区。

还请参阅为什么Python的Integer分区楼层 (感谢@eugene y) --基本上7//-3就是-7//3,因此您希望能够编写:

代码语言:javascript
复制
-7 = 3 * q + r

对于q是一个整数(负数、正整数或nul),而r是一个整数,例如0 <= r < 3。这只有在q = -3的情况下才有效

代码语言:javascript
复制
-7 = 3 * (-3) + 2
票数 32
EN

Stack Overflow用户

发布于 2015-12-11 07:18:37

//是楼层划分的操作员。

这意味着在除法完成后,应用“地板”函数(从除法中检索的值被四舍五入到最接近的整数,而不管十进制部分是否大于或小于.5)。

至于你的例子,请注意,对于否定的答案,地板除法操作符仍然是四舍五入(例如-5/2 --> -2.5 ->-> -3)。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34217841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档