Both are mathematically correct according to the invariant in the divmod docstring, div*y + mod == x, but we should be consistent with Python. In general in Python, the sign of mod should be the same as the sign of the second argument.

>>>-1*-2.1+1.94.0>>>-2.0*-2.1+-0.24.0

Our Mod is already correct, so it's just Number.__divmod__ that needs to be corrected