6 // 4
-6 // 4
// 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
Return the floor of x, the largest integer less than or equal to x.
-6 // 4, first the result of
-6 / 4 is calculated, so
-1.5. Flooring then moves to the lower integer value, so
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.