Issue #27720: Fix error in eng_to_decimal docs and add examples from the specification.
(Based on a first draft patch from Evelyn Mitchell.)
This commit is contained in:
parent
bd664357f1
commit
f6ffa9826e
|
@ -836,11 +836,13 @@ Decimal objects
|
||||||
|
|
||||||
.. method:: to_eng_string(context=None)
|
.. method:: to_eng_string(context=None)
|
||||||
|
|
||||||
Convert to an engineering-type string.
|
Convert to a string, using engineering notation if an exponent is needed.
|
||||||
|
|
||||||
Engineering notation has an exponent which is a multiple of 3, so there
|
Engineering notation has an exponent which is a multiple of 3. This
|
||||||
are up to 3 digits left of the decimal place. For example, converts
|
can leave up to 3 digits to the left of the decimal place and may
|
||||||
``Decimal('123E+1')`` to ``Decimal('1.23E+3')``.
|
require the addition of either one or two trailing zeros.
|
||||||
|
|
||||||
|
For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``.
|
||||||
|
|
||||||
.. method:: to_integral(rounding=None, context=None)
|
.. method:: to_integral(rounding=None, context=None)
|
||||||
|
|
||||||
|
@ -1410,7 +1412,11 @@ In addition to the three supplied contexts, new contexts can be created with the
|
||||||
|
|
||||||
.. method:: to_eng_string(x)
|
.. method:: to_eng_string(x)
|
||||||
|
|
||||||
Converts a number to a string, using scientific notation.
|
Convert to a string, using engineering notation if an exponent is needed.
|
||||||
|
|
||||||
|
Engineering notation has an exponent which is a multiple of 3. This
|
||||||
|
can leave up to 3 digits to the left of the decimal place and may
|
||||||
|
require the addition of either one or two trailing zeros.
|
||||||
|
|
||||||
|
|
||||||
.. method:: to_integral_exact(x)
|
.. method:: to_integral_exact(x)
|
||||||
|
|
|
@ -1068,12 +1068,11 @@ class Decimal(object):
|
||||||
return sign + intpart + fracpart + exp
|
return sign + intpart + fracpart + exp
|
||||||
|
|
||||||
def to_eng_string(self, context=None):
|
def to_eng_string(self, context=None):
|
||||||
"""Convert to engineering-type string.
|
"""Convert to a string, using engineering notation if an exponent is needed.
|
||||||
|
|
||||||
Engineering notation has an exponent which is a multiple of 3, so there
|
Engineering notation has an exponent which is a multiple of 3. This
|
||||||
are up to 3 digits left of the decimal place.
|
can leave up to 3 digits to the left of the decimal place and may
|
||||||
|
require the addition of either one or two trailing zeros.
|
||||||
Same rules for when in exponential and when as a value as in __str__.
|
|
||||||
"""
|
"""
|
||||||
return self.__str__(eng=True, context=context)
|
return self.__str__(eng=True, context=context)
|
||||||
|
|
||||||
|
@ -5502,9 +5501,29 @@ class Context(object):
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def to_eng_string(self, a):
|
def to_eng_string(self, a):
|
||||||
"""Converts a number to a string, using scientific notation.
|
"""Convert to a string, using engineering notation if an exponent is needed.
|
||||||
|
|
||||||
|
Engineering notation has an exponent which is a multiple of 3. This
|
||||||
|
can leave up to 3 digits to the left of the decimal place and may
|
||||||
|
require the addition of either one or two trailing zeros.
|
||||||
|
|
||||||
The operation is not affected by the context.
|
The operation is not affected by the context.
|
||||||
|
|
||||||
|
>>> ExtendedContext.to_eng_string(Decimal('123E+1'))
|
||||||
|
'1.23E+3'
|
||||||
|
>>> ExtendedContext.to_eng_string(Decimal('123E+3'))
|
||||||
|
'123E+3'
|
||||||
|
>>> ExtendedContext.to_eng_string(Decimal('123E-10'))
|
||||||
|
'12.3E-9'
|
||||||
|
>>> ExtendedContext.to_eng_string(Decimal('-123E-12'))
|
||||||
|
'-123E-12'
|
||||||
|
>>> ExtendedContext.to_eng_string(Decimal('7E-7'))
|
||||||
|
'700E-9'
|
||||||
|
>>> ExtendedContext.to_eng_string(Decimal('7E+1'))
|
||||||
|
'70'
|
||||||
|
>>> ExtendedContext.to_eng_string(Decimal('0E+1'))
|
||||||
|
'0.00E+3'
|
||||||
|
|
||||||
"""
|
"""
|
||||||
a = _convert_other(a, raiseit=True)
|
a = _convert_other(a, raiseit=True)
|
||||||
return a.to_eng_string(context=self)
|
return a.to_eng_string(context=self)
|
||||||
|
|
Loading…
Reference in New Issue