How // And % Work With Negative Numbers In Python eg. ( 37 % -10 )
3 min readAug 29, 2024
Disclaimer — this will probably not be useful in real life. I read up on this because I’ll be tested on this during an exam (and it’s kinda fun to learn how things work in the backend)
To understand how
%
(modulo) works, we need to first understand how//
(floor divide) works.
How // (floor divide) works
Finding 37 // 10
- let’s first look at true division.
37 / 10
is 3.7 - the floor of 3.7 is 3
37 // 10
is thus 3 (floor division)
How // works for negative numbers
Finding 37 // -10
- let’s first look at true division.
37 / -10
is -3.7 - the floor of -3.7 is -4 (notice that it rounds leftwards)
37 // -10
is thus -4
Finding -37 // 10
- let’s first look at true division.
-37 / 10
is -3.7 - the floor of -3.7 is -4
-37 // 10
is thus -4
Finding -37 // -10
- let’s first look at true division.
-37 / -10
is 3.7 - the floor of 3.7 is 3
-37 // -10
is thus 3