Show how to remove exponents.

This commit is contained in:
Raymond Hettinger 2008-02-14 11:57:25 +00:00
parent 27a90d989d
commit d68bf02810
1 changed files with 11 additions and 0 deletions

View File

@ -1590,6 +1590,7 @@ to handle the :meth:`quantize` step::
... return (x * y).quantize(fp)
>>> def div(x, y, fp=TWOPLACES):
... return (x / y).quantize(fp)
>>> mul(a, b) # Automatically preserve fixed-point
Decimal('325.62')
>>> div(b, a)
@ -1615,6 +1616,16 @@ of significant places in the coefficient. For example, expressing
:const:`5.0E+3` as :const:`5000` keeps the value constant but cannot show the
original's two-place significance.
If an application does not care about tracking significance, it is easy to
remove the exponent and trailing zeroes, losing signficance, but keeping the
value unchanged::
>>> def remove_exponent(d):
... return d.quantize(Decimal(1)) if d == d.to_integral() else d.normalize()
>>> remove_exponent(Decimal('5E+3'))
Decimal('5000')
Q. Is there a way to convert a regular float to a :class:`Decimal`?
A. Yes, all binary floating point numbers can be exactly expressed as a