First, some background.
I've recently tried to port a certain library that manipulates dates
from C. Some of the core functions contain heavy integer math (very long
formulae), and after implementing them I tested them to see the give the
I got very odd results, which surprised me since I copied the formula
letter to letter.
I decided to investigate further, and after trying to evaluate several
expressions in the python console, I realized it was the integer
For some reason, the integer division behaves unexpectedly for negative
Looking deeper in the python PEPs, I saw that division on integers is
defined as: idiv(a, b) = floor(fdiv(a, b)).
This non-quotient division leads to some odd results, e.g. Python seems
to think -3/2+3/2 = -1. This is clearly, and correct me if I'm mistaken
Now, seeing as Python 3000 is getting closer, and backwards
compatibility isn't an issue, I believe it would be a good idea to
change the // operator (which will be used for integer division) to
behave as quotient, i.e.: a // b = trunc(a / b)