[New-bugs-announce] [issue22337] Modulus not returning proper remainder

DenisCrnic report at bugs.python.org
Thu Sep 4 23:40:20 CEST 2014

New submission from DenisCrnic:

Modulus is returning wrong remainder when working with negative numbers.
For example 34%-3 should return 1, but it returns -2.

34/-3=-11, remainder: 1, proof: -11*(-3)+1=34 <--- Math logic (works in Java for example)

but python goes like that:
34/-3=12, remainder: -2. proof: -12*(-3)+(-2)=34 <--- Python logic (works)
I know that python is looking for the int which is the closest to the a (a%b), and is divisible with it, but in this case that's not right. it should seek for the closest integer, which is lower than a, in this case 33

If explanation is not clear enough, reply me, i'll take more time to make it clear.
maybe my theory is wrong, and python syntax works better than in Java.

files: Screenshot_1.png
messages: 226381
nosy: DenisCrnic
priority: normal
severity: normal
status: open
title: Modulus not returning proper remainder
type: behavior
versions: Python 3.4
Added file: http://bugs.python.org/file36537/Screenshot_1.png

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list