summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Doc/library/decimal.rst65
1 files changed, 45 insertions, 20 deletions
diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst
index be8f41d713..2dcd44572b 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -128,6 +128,8 @@ representation error). Decimal numbers include special values such as
Decimal("3.14")
>>> Decimal(str(2.0 ** 0.5))
Decimal("1.41421356237")
+ >>> Decimal(2) ** Decimal("0.5")
+ Decimal("1.414213562373095048801688724")
>>> Decimal("NaN")
Decimal("NaN")
>>> Decimal("-Infinity")
@@ -177,6 +179,17 @@ floating point flying circus::
>>> c % a
Decimal("0.77")
+And some mathematic functions are also available to Decimal::
+
+ >>> Decimal(2).sqrt()
+ Decimal("1.414213562373095048801688724")
+ >>> Decimal(1).exp()
+ Decimal("2.718281828459045235360287471")
+ >>> Decimal("10").ln()
+ Decimal("2.302585092994045684017991455")
+ >>> Decimal("10").log10()
+ Decimal("1")
+
The :meth:`quantize` method rounds a number to a fixed exponent. This method is
useful for monetary applications that often round results to a fixed number of
places::
@@ -419,6 +432,11 @@ also have a number of specialized methods:
given number. The result is correctly rounded using the
:const:`ROUND_HALF_EVEN` rounding mode.
+ >>> Decimal(1).exp()
+ Decimal("2.718281828459045235360287471")
+ >>> Decimal(321).exp()
+ Decimal("2.561702493119680037517373933E+139")
+
.. versionadded:: 2.6
.. method:: Decimal.fma(other, third[, context])
@@ -426,78 +444,82 @@ also have a number of specialized methods:
Fused multiply-add. Return self*other+third with no rounding of
the intermediate product self*other.
+ >>> Decimal(2).fma(3, 5)
+ Decimal("11")
+
.. versionadded:: 2.6
.. method:: Decimal.is_canonical()
- Return ``Decimal(1)`` if the argument is canonical and
- ``Decimal(0)`` otherwise. Currently, a :class:`Decimal` instance
+ Return :const:`True` if the argument is canonical and
+ :const:`False` otherwise. Currently, a :class:`Decimal` instance
is always canonical, so this operation always returns
- ``Decimal(1)``.
+ :const:`True`.
.. versionadded:: 2.6
.. method:: is_finite()
- Return ``Decimal(1)`` if the argument is a finite number, and
- ``Decimal(0)`` if the argument is an infinity or a NaN.
+ Return :const:`True` if the argument is a finite number, and
+ :const:`False` if the argument is an infinity or a NaN.
.. versionadded:: 2.6
.. method:: is_infinite()
- Return ``Decimal(1)`` if the argument is either positive or
- negative infinity and ``Decimal(0)`` otherwise.
+ Return :const:`True` if the argument is either positive or
+ negative infinity and :const:`False` otherwise.
.. versionadded:: 2.6
.. method:: is_nan()
- Return ``Decimal(1)`` if the argument is a (quiet or signaling)
- NaN and ``Decimal(0)`` otherwise.
+ Return :const:`True` if the argument is a (quiet or signaling)
+ NaN and :const:`False` otherwise.
.. versionadded:: 2.6
.. method:: is_normal()
- Return ``Decimal(1)`` if the argument is a *normal* finite number.
- Return ``Decimal(0)`` if the argument is zero, subnormal, infinite
+ Return :const:`True` if the argument is a *normal* finite number.
+ Return :const:`False` if the argument is zero, subnormal, infinite
or a NaN.
.. versionadded:: 2.6
.. method:: is_qnan()
- Return ``Decimal(1)`` if the argument is a quiet NaN, and ``Decimal(0)`` otherwise.
+ Return :const:`True` if the argument is a quiet NaN, and
+ :const:`False` otherwise.
.. versionadded:: 2.6
.. method:: is_signed()
- Return ``Decimal(1)`` if the argument has a negative sign and
- ``Decimal(0)`` otherwise. Note that zeros and NaNs can both carry
+ Return :const:`True` if the argument has a negative sign and
+ :const:`False` otherwise. Note that zeros and NaNs can both carry
signs.
.. versionadded:: 2.6
.. method:: is_snan()
- Return ``Decimal(1)`` if the argument is a signaling NaN and
- ``Decimal(0)`` otherwise.
+ Return :const:`True` if the argument is a signaling NaN and
+ :const:`False` otherwise.
.. versionadded:: 2.6
.. method:: is_subnormal()
- Return ``Decimal(1)`` if the argument is subnormal, and
- ``Decimal(0)`` otherwise.
+ Return :const:`True` if the argument is subnormal, and
+ :const:`False` otherwise.
.. versionadded:: 2.6
.. method:: is_zero()
- Return ``Decimal(1)`` if the argument is a (positive or negative)
- zero and ``Decimal(0)`` otherwise.
+ Return :const:`True` if the argument is a (positive or negative)
+ zero and :const:`False` otherwise.
.. versionadded:: 2.6
@@ -640,6 +662,9 @@ also have a number of specialized methods:
Returns a value equal to the first operand after rounding and
having the exponent of the second operand.
+ >>> Decimal("1.41421356").quantize(Decimal("1.000"))
+ Decimal("1.414")
+
Unlike other operations, if the length of the coefficient after the
quantize operation would be greater than precision, then an
:const:`InvalidOperation` is signaled. This guarantees that, unless