operator-mod
The % (modulo) operator yields the remainder from the division of
the first argument by the second. The numeric arguments are first
converted to a common type. A zero right argument raises the
ZeroDivisionError exception. The arguments may be floating point
numbers, e.g., 3.14%0.7 equals 0.34 (since 3.14 equals `4*0.7
+ 0.34`.) The modulo operator always yields a result with the same
sign as its second operand (or zero); the absolute value of the result
is strictly smaller than the absolute value of the second
operand[5.2][5].
Note: While abs(x%y) < abs(y) is true mathematically, for
floats it may not be true numerically due to roundoff. For example,
and assuming a platform on which a Python float is an IEEE 754
double-precision number, in order that -1e-100 % 1e100 have the same
sign as 1e100, the computed result is -1e-100 + 1e100, which is
numerically exactly equal