Engineering numerical format PEP discussion

Stefan Krah stefan-usenet at bytereef.org
Mon Apr 26 05:04:35 EDT 2010


Chris Rebert <clp2 at rebertia.com> wrote:
> >>>> c = decimal.Context(prec=5)
> >>>> decimal.Decimal(1234567).to_eng_string(c)
> > '1234567'
> >
> > That is not an engineering notation string.
> 
> Apparently either you and the General Decimal Arithmetic spec differ
> on what constitutes engineering notation, there's a bug in the Python
> decimal library, or you're hitting some obscure part of the spec's
> definition. I don't have the expertise to know which is the case.
> 
> The spec: http://speleotrove.com/decimal/decarith.pdf
> (to-engineering-string is on page 20 if you're interested)

The module is correct. Printing without exponent follows the same rules
as to-scientific-string:

"If the exponent is less than or equal to zero and the adjusted exponent
 is greater than or equal to -6, the number will be converted to a
 character form without using exponential notation."


Stefan Krah





More information about the Python-list mailing list