Соответствующий кусок статьи Википедии «Деление с остатком» во многом мой, расскажу вкратце.
Когда делитель отрицательный, в моей практике такого не бывало. А когда отрицательное делимое, есть два подхода. Но прежде выясним, что такое неполное частное и что такое остаток.
q = [a / b], r = a − bq.
Когда b>0, есть два подхода к округлению.
1. Неполное частное округляется к нулю, остаток отрицательный.
2. Неполное частное округляется к −∞, остаток положительный.
Оба имеют право на жизнь: первый — когда преобразуем сумму в копейках в рубли-копейки, второй — когда огрубляем координаты, чтобы указать, в какой клетке находится точка.
Можно эти правила расширить и на отрицательный делитель: a mod (−b) = −a mod b. В такой ситуации знак остатка равняется знаку делимого и делителя соответственно.
В x86 (а значит, в большинстве ЯП) принят первый подход. А в Питоне — второй.