[Python-Dev] Floor division
Anders J. Munch
ajm at flonidan.dk
Tue Jan 23 12:00:59 CET 2007
Tim Peters wrote:
> Please read the whole thread. Maybe you did, but you said nothing
> here that indicated you had. The issues aren't about tiny integers
> that happen to be in float format, where the result is exactly
> representable as a float too. Those don't create problems for any
> definition of mod. But even non-tiny exact integers can.
I did read the whole thread, and I saw your -1%1e100 example. Mixing
floating-point numbers of very different magnitude can get you in
trouble - e.g. -1+1e100==1e100. I don't think -1%1e100 is all that
worse.
> > It's only Decimal.__mod__ that's inconsistent. float.__mod__ has the
> > usual floating-point inaccuracies, but then with float that goes with
> > the territory.
>
> No. Decimal.__mod_ always returns the mathematically exact result.
I meant inconsistent with integers. People are familiar with the
semantics of % on integers, because they use it all the time. % on
float is a natural extension of that and hence unsurprising. % on
Decimal is exact and correct, but surprising all the same.
regards, Anders
More information about the Python-Dev
mailing list