[Python-Dev] Mixing float and Decimal -- thread reboot (original) (raw)

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