On Thu, Dec 4, 2008 at 12:51 AM, Chris Rebert <clp at rebertia.com> wrote:
> With Python 3.0 being released, and going over its many changes, I was
> reminded that decimal numbers (decimal.Decimal) are still relegated to
> a library and aren't built-in.
>> Has there been any thought to adding decimal literals and making
> decimal a built-in type? I googled but was unable to locate any
> discussion of the exact issue. The closest I could find was a
> suggestion about making decimal the default instead of float:
>http://mail.python.org/pipermail/python-ideas/2008-May/001565.html> It seems that decimal arithmetic is more intuitively correct that
> plain floating point and floating point's main (only?) advantage is
> speed, but it seems like premature optimization to favor speed over
> correctness by default at the language level.
Intuitively, you'd think it's more correct, but for non-trivial usage
I see no reason for it to be. The strongest arguments on [1] seem to
be controllable precision and stricter standards. Controllable
precision works just as well in a library. Stricter standards (ie
very portable semantics) could be done with base-2 floats via software
emulating on all platforms (and throwing performance out the window).
Do you have some use cases that are (completely!) correct in decimal,
and not in base-2 floating point? Something not trivial (emulating a
schoolbook, writing a calculator, etc.)
I see Decimal as a modest investment for a mild return. Not worth the
effort to switch.
--
Adam Olsen, aka Rhamphoryncus