首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带负数的楼层划分

带负数的楼层划分
EN

Stack Overflow用户
提问于 2016-05-17 18:30:42
回答 4查看 15.7K关注 0票数 15

表达式6 // 4生成1,其中地板划分在除以一个数字后生成整数。

但是,对于负数,为什么-6 // 4返回-2

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-17 18:35:25

//操作符显式地降低结果。引用 documentation

结果是将“地板”函数应用于结果的数学除法。

地板与舍入到0不是一回事;地板总是移动到较低的整数值。见 function

返回x的地板,最大整数小于或等于x。

对于-6 // 4,首先计算-6 / 4的结果,因此计算-1.5。地板然后移动到较低的整数值,因此-2

如果您想将其舍入为零,则必须显式地这样做;您可以在真正除法时使用int()函数这样做:

代码语言:javascript
复制
>>> int(-6 / 4)
-1

int()移除小数部分,因此总是以零为圆圈。

票数 31
EN

Stack Overflow用户

发布于 2016-05-17 18:35:49

楼层划分也将降至下一个最低的数值,而不是下一个最低的绝对值。

6 // 4 = 1.5,它分为1圈和2圈。

-6 // 4 = -1.5,从-2圈到-1圈.

票数 5
EN

Stack Overflow用户

发布于 2018-01-28 15:27:34

理解地板分割//产生负值结果的一种有用方法是将其看作是对模或余数%运算符的补充。

代码语言:javascript
复制
5/3  is equivalent to 1 remainder 2 

代码语言:javascript
复制
5//3 = 1
5%3 = 2

代码语言:javascript
复制
-5/3 = -2
-5%3 = 1

代码语言:javascript
复制
-2 + 1/3rd which is -1.6667 (ish)

它可能看起来很奇怪,但它确保了生成序列时的结果,如-2,-2,-2,-1,-1,-1,0,0,0,1,1,1,2,2,2,3,3,3等。

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

https://stackoverflow.com/questions/37283786

复制
相关文章

相似问题

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