[Python-Dev] Revised decimal type PEP
Guido van Rossum
guido@zope.com
Wed, 01 Aug 2001 10:55:02 -0400
> Hmm, am I understanding you explaination?
>
> Here is a rational expression:
>
> 9/4 * 4/3 = 3
>
> With floats this ends up being close, but with rounding errors.
>
> >>> 2.25*1.333333
> 2.9999992500000001
> >>>
>
> If this is expressed as a product of 2.25b * 1.333333d the result would be an
> inexact value. A binary number would be returned, instead of the decimal
> number 3.
Correct.
> Where is Tim's "numeric context" located?
In his mind. :-)
I believe it is typically global per thread, but that's up to the
langage binding. A Java binding for Cowlishaw's decimals apparently
requires passing in a context as a third argument on each operation.
> M.-A. Lemburg" suggested looking at the SQL specification for Decimal
> datatypes. A decimal type is also defined as a type in XML Schema. Since
> this is an XML datatype there isn't a definition for how these numbers are
> created.
Do these say anything about semantics under numeric operations? That
would seem to be outside the realm of XML and possibly even outside
SQL. So I'm not sure how these help.
> NOTE: All ˇminimally conformingˇ processors ˇmustˇ support decimal numbers
> with a minimum of 18 decimal digits (i.e., with a ˇtotalDigitsˇ of 18).
> However, ˇminimally conformingˇ processors ˇmayˇ set an application-defined
> limit on the maximum number of decimal digits they are prepared to support,
> in which case that application-defined maximum number ˇmustˇ be clearly
> documented.
> - http://www.w3.org/TR/xmlschema-2/#decimal
I followed the URL and found only external representation issues,
nothing that can help us.
--Guido van Rossum (home page: http://www.python.org/~guido/)