On Sat, Mar 20, 2010 at 09:11, Antoine Pitrou <solip...@pitrou.net> wrote: > Mark Dickinson <dickinsm <at> gmail.com> writes: >> >> On Fri, Mar 19, 2010 at 9:50 PM, Guido van Rossum <guido <at> python.org> > wrote: >> > There is one choice which I'm not sure about. Should a mixed >> > float/Decimal operation return a float or a Decimal? >> >> I'll just say that it's much easier to return a Decimal if you want to >> be able to make guarantees about rounding behaviour, basically because >> floats can be converted losslessly to Decimals. I also like the fact >> that the decimal module offers more control (rounding mode, precision, >> flags, wider exponent range) than float. > > A problem, though, is that decimals are much slower than floats. If you have a > decimal creeping in some part of a calculation it could degrade performance > quite a bit.
For a little context, we have this numeric tower: int -> Fraction -> float -> complex And coincidentally (or not), we have an unspoken rule that you can go right, but never left (int/int -> float, int/Fraction -> Fraction, Fraction/float -> float, Fraction/complex -> complex, etc). This gives us a preference for fast, inexact results. Decimal is more precise, and pays a performance cost for it. It also seems odd to stick it between float and complex (nobody's planning a ComplexDecimal, right?) That suggests it should go between Fraction and float. Decimal/float -> float. -- Adam Olsen, aka Rhamphoryncus _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com