diff options
Diffstat (limited to 'Lib/_pydecimal.py')
| -rw-r--r-- | Lib/_pydecimal.py | 31 | 
1 files changed, 25 insertions, 6 deletions
diff --git a/Lib/_pydecimal.py b/Lib/_pydecimal.py index c719424472..900a1a796c 100644 --- a/Lib/_pydecimal.py +++ b/Lib/_pydecimal.py @@ -1068,12 +1068,11 @@ class Decimal(object):          return sign + intpart + fracpart + exp      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 -        are up to 3 digits left of the decimal place. - -        Same rules for when in exponential and when as a value as in __str__. +        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.          """          return self.__str__(eng=True, context=context) @@ -5502,9 +5501,29 @@ class Context(object):              return r      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. + +        >>> 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)          return a.to_eng_string(context=self)  | 
