Velocity Reviews > Integer division, surprising results

# Integer division, surprising results

Michael Cornelius
Guest
Posts: n/a

 05-10-2004
As an old C programmer, I'm surprised by some results I'm getting with
integer division. For example:

>>> -1/1000

-1
>>> -9/2

-5

I expect the results of these expressions to be 0 and -4,
respectively.

I've looked at faqs and documentation, and nothing jumped out at me. Can
anyone explain the reasoning for this?

Thanks,
Michael Cornelius

Rory Geoghegan
Guest
Posts: n/a

 05-10-2004
> I've looked at faqs and documentation, and nothing jumped out at me. Can
> anyone explain the reasoning for this?

According to my math book integer division is defined as such:
a/b = q, where a = b*q + r and r is the remainder.

A remainder (ei a modulo) is always positive, effectively flooring all
the division operations.

Steve
Guest
Posts: n/a

 05-12-2004
Rory Geoghegan wrote:
>>I've looked at faqs and documentation, and nothing jumped out at me. Can
>>anyone explain the reasoning for this?

>
>
> According to my math book integer division is defined as such:
> a/b = q, where a = b*q + r and r is the remainder.
>
> A remainder (ei a modulo) is always positive, effectively flooring all
> the division operations.

Remainders are always positive, but modulo can be
defined as either positive or negative (for negative
arguments). There are pros and cons for doing it either
way, although the Python way seems to have more pros
than cons.

--
Steven D'Aprano