负数楼层划分 [英] Floor division with negative number

查看:32
本文介绍了负数楼层划分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

The expression 6 // 4 yields 1, where floor division produces the whole number after dividing a number.

But with a negative number, why does -6 // 4 return -2?

解决方案

The // operator explicitly floors the result. Quoting the Binary arithmetic operations documentation:

the result is that of mathematical division with the ‘floor’ function applied to the result.

Flooring is not the same thing as rounding to 0; flooring always moves to the lower integer value. See the math.floor() function:

Return the floor of x, the largest integer less than or equal to x.

For -6 // 4, first the result of -6 / 4 is calculated, so -1.5. Flooring then moves to the lower integer value, so -2.

If you want to round towards zero instead, you'll have to do so explicitly; you could do this with the int() function on true division:

>>> int(-6 / 4)
-1

int() removes the decimal portion, so always rounds towards zero instead.

这篇关于负数楼层划分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆