[Python-Dev] Mixing float and Decimal -- thread reboot

Raymond Hettinger raymond.hettinger at gmail.com
Mon Mar 22 20:00:37 CET 2010


On Mar 22, 2010, at 11:26 AM, Mark Dickinson wrote:
> 
> Just for the record, I'd also prefer Decimal + Fraction -> Decimal.


Guido was persuasive on why float + Fraction --> float,
so this makes sense for the same reasons.

For the implementation, is there a way to avoid the double rounding
in   myfloat + myfrac.numerator / myfrac.denominator?

Perhaps translate it to:

      f = Fractions.from_decimal(myfloat) + myfract   # Lossless, exact addition
      return f.numerator / f.denominator           # Only one decimal context rounding applied.

Elsewhere in the decimal module, there is a fundamental notion
that numbers are exact and only the results of operations are
rounded.   For example, it is possible in decimal to add together
two high precision numbers but do so in a low precision context.


Raymond



More information about the Python-Dev mailing list