Matematické vs. programovací modulo: Problém záporných čísel
Rozdíl mezi matematickou a programovací konvencí modulo vyplývá z toho, jak přistupují k celočíselnému dělení. Matematické modulo používá dělení dolů (zaokrouhlování směrem k zápornému nekonečnu), takže podíl -7 děleno 3 se zaokrouhlí dolů na -3, což dává zbytek -7 minus 3 krát -3 rovná se 2. Programovací modulo používá dělení se zaokrouhlením k nule, takže podíl se zaokrouhlí na -2, což dává zbytek -7 minus 3 krát -2 rovná se -1.
Jazyk Python používá výhradně matematické (dolů zaokrouhlené) modulo, což odpovídá konvenci očekávané v abstraktní algebře a teorii čísel. Jazyky C, C++, Java, JavaScript, Go a Rust používají modulo zaokrouhlené k nule. Ruby a Perl se chovají stejně jako Python.
Tento rozdíl je důležitý v reálném kódu: převod záporného úhlu do rozsahu 0-359 vyžaduje matematické modulo (-90 mod 360 se rovná 270), ale operátor procenta v jazyku C vrátí -90, což vyžaduje ruční úpravu.