Modul (%) in python not like in C?

mensanator at aol.com mensanator at aol.com
Mon Sep 10 07:57:24 CEST 2007


On Sep 9, 11:43?pm, Dennis Lee Bieber <wlfr... at ix.netcom.com> wrote:
> On Mon, 10 Sep 2007 01:06:59 GMT, Bryan Olson <fakeaddr... at nowhere.org>
> declaimed the following in comp.lang.python:
>
> > They also disagree about integer division. C rounds toward zero;
> > Python rounds downward.
>
> > In C:       -111 / 10  evaluates to -11
> > In Python:  -111 / 10  evaluates to -12
>
> > > Is this a known gotcha? I tried to google the
> > > subject however one cannot google the symbol %.
>
> > I think it's a known gotcha. I cited the refs in another post.
>
>         The best answer is probably to be found from the definition of
> divmod()
>
>
>
> >>> divmod(70, 6)
> (11, 4)
> >>> 6*11 + 4
> 70
> >>> divmod(-70, 6)
> (-12, 2)
> >>> 6 * -12 + 2
> -70
>
> Or in general terms
>
> (a, b) = divmod(x, y)
> x = y * a + b

But, in general, doesn't (-11,-4) also satisfy
  x = y *   a +   b
-70 = 6 * -11 + (-4)?

Do you overpay your car loans and wait for a refund?

Or do you make your last payment the residue of the
debt after making 47 (or whatever) equal payments?


>
> IOWs, the definition of modulo, and the definition of integer division,
> are linked...
>
> --
>         Wulfraed        Dennis Lee Bieber               KD6MOG
>         wlfr... at ix.netcom.com             wulfr... at bestiaria.com
>                 HTTP://wlfraed.home.netcom.com/
>         (Bestiaria Support Staff:               web-a... at bestiaria.com)
>                 HTTP://www.bestiaria.com/





More information about the Python-list mailing list