forked from AFPy/python-docs-fr
1949 lines
66 KiB
Plaintext
1949 lines
66 KiB
Plaintext
# SOME DESCRIPTIVE TITLE.
|
|
# Copyright (C) 2001-2016, Python Software Foundation
|
|
# This file is distributed under the same license as the Python package.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
#
|
|
#, fuzzy
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: Python 3.6\n"
|
|
"Report-Msgid-Bugs-To: \n"
|
|
"POT-Creation-Date: 2016-10-30 10:40+0100\n"
|
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
#: ../Doc/library/decimal.rst:2
|
|
msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:15
|
|
msgid "**Source code:** :source:`Lib/decimal.py`"
|
|
msgstr "**Code source :** :source:`Lib/decimal.py`"
|
|
|
|
#: ../Doc/library/decimal.rst:28
|
|
msgid ""
|
|
"The :mod:`decimal` module provides support for fast correctly-rounded "
|
|
"decimal floating point arithmetic. It offers several advantages over the :"
|
|
"class:`float` datatype:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:32
|
|
msgid ""
|
|
"Decimal \"is based on a floating-point model which was designed with people "
|
|
"in mind, and necessarily has a paramount guiding principle -- computers must "
|
|
"provide an arithmetic that works in the same way as the arithmetic that "
|
|
"people learn at school.\" -- excerpt from the decimal arithmetic "
|
|
"specification."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:37
|
|
msgid ""
|
|
"Decimal numbers can be represented exactly. In contrast, numbers like :"
|
|
"const:`1.1` and :const:`2.2` do not have exact representations in binary "
|
|
"floating point. End users typically would not expect ``1.1 + 2.2`` to "
|
|
"display as :const:`3.3000000000000003` as it does with binary floating point."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:42
|
|
msgid ""
|
|
"The exactness carries over into arithmetic. In decimal floating point, "
|
|
"``0.1 + 0.1 + 0.1 - 0.3`` is exactly equal to zero. In binary floating "
|
|
"point, the result is :const:`5.5511151231257827e-017`. While near to zero, "
|
|
"the differences prevent reliable equality testing and differences can "
|
|
"accumulate. For this reason, decimal is preferred in accounting applications "
|
|
"which have strict equality invariants."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:49
|
|
msgid ""
|
|
"The decimal module incorporates a notion of significant places so that "
|
|
"``1.30 + 1.20`` is :const:`2.50`. The trailing zero is kept to indicate "
|
|
"significance. This is the customary presentation for monetary applications. "
|
|
"For multiplication, the \"schoolbook\" approach uses all the figures in the "
|
|
"multiplicands. For instance, ``1.3 * 1.2`` gives :const:`1.56` while ``1.30 "
|
|
"* 1.20`` gives :const:`1.5600`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:56
|
|
msgid ""
|
|
"Unlike hardware based binary floating point, the decimal module has a user "
|
|
"alterable precision (defaulting to 28 places) which can be as large as "
|
|
"needed for a given problem:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:68
|
|
msgid ""
|
|
"Both binary and decimal floating point are implemented in terms of published "
|
|
"standards. While the built-in float type exposes only a modest portion of "
|
|
"its capabilities, the decimal module exposes all required parts of the "
|
|
"standard. When needed, the programmer has full control over rounding and "
|
|
"signal handling. This includes an option to enforce exact arithmetic by "
|
|
"using exceptions to block any inexact operations."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:75
|
|
msgid ""
|
|
"The decimal module was designed to support \"without prejudice, both exact "
|
|
"unrounded decimal arithmetic (sometimes called fixed-point arithmetic) and "
|
|
"rounded floating-point arithmetic.\" -- excerpt from the decimal arithmetic "
|
|
"specification."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:80
|
|
msgid ""
|
|
"The module design is centered around three concepts: the decimal number, "
|
|
"the context for arithmetic, and signals."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:83
|
|
msgid ""
|
|
"A decimal number is immutable. It has a sign, coefficient digits, and an "
|
|
"exponent. To preserve significance, the coefficient digits do not truncate "
|
|
"trailing zeros. Decimals also include special values such as :const:"
|
|
"`Infinity`, :const:`-Infinity`, and :const:`NaN`. The standard also "
|
|
"differentiates :const:`-0` from :const:`+0`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:89
|
|
msgid ""
|
|
"The context for arithmetic is an environment specifying precision, rounding "
|
|
"rules, limits on exponents, flags indicating the results of operations, and "
|
|
"trap enablers which determine whether signals are treated as exceptions. "
|
|
"Rounding options include :const:`ROUND_CEILING`, :const:`ROUND_DOWN`, :const:"
|
|
"`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :const:"
|
|
"`ROUND_HALF_UP`, :const:`ROUND_UP`, and :const:`ROUND_05UP`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:96
|
|
msgid ""
|
|
"Signals are groups of exceptional conditions arising during the course of "
|
|
"computation. Depending on the needs of the application, signals may be "
|
|
"ignored, considered as informational, or treated as exceptions. The signals "
|
|
"in the decimal module are: :const:`Clamped`, :const:`InvalidOperation`, :"
|
|
"const:`DivisionByZero`, :const:`Inexact`, :const:`Rounded`, :const:"
|
|
"`Subnormal`, :const:`Overflow`, :const:`Underflow` and :const:"
|
|
"`FloatOperation`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:103
|
|
msgid ""
|
|
"For each signal there is a flag and a trap enabler. When a signal is "
|
|
"encountered, its flag is set to one, then, if the trap enabler is set to "
|
|
"one, an exception is raised. Flags are sticky, so the user needs to reset "
|
|
"them before monitoring a calculation."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:111
|
|
msgid ""
|
|
"IBM's General Decimal Arithmetic Specification, `The General Decimal "
|
|
"Arithmetic Specification <http://speleotrove.com/decimal/decarith.html>`_."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:120
|
|
msgid "Quick-start Tutorial"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:122
|
|
msgid ""
|
|
"The usual start to using decimals is importing the module, viewing the "
|
|
"current context with :func:`getcontext` and, if necessary, setting new "
|
|
"values for precision, rounding, or enabled traps::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:134
|
|
msgid ""
|
|
"Decimal instances can be constructed from integers, strings, floats, or "
|
|
"tuples. Construction from an integer or a float performs an exact conversion "
|
|
"of the value of that integer or float. Decimal numbers include special "
|
|
"values such as :const:`NaN` which stands for \"Not a number\", positive and "
|
|
"negative :const:`Infinity`, and :const:`-0`::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:158
|
|
msgid ""
|
|
"If the :exc:`FloatOperation` signal is trapped, accidental mixing of "
|
|
"decimals and floats in constructors or ordering comparisons raises an "
|
|
"exception::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:177
|
|
msgid ""
|
|
"The significance of a new Decimal is determined solely by the number of "
|
|
"digits input. Context precision and rounding only come into play during "
|
|
"arithmetic operations."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:194
|
|
msgid ""
|
|
"If the internal limits of the C version are exceeded, constructing a decimal "
|
|
"raises :class:`InvalidOperation`::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:204
|
|
msgid ""
|
|
"Decimals interact well with much of the rest of Python. Here is a small "
|
|
"decimal floating point flying circus:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:236
|
|
msgid "And some mathematical functions are also available to Decimal:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:248
|
|
msgid ""
|
|
"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:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:257
|
|
msgid ""
|
|
"As shown above, the :func:`getcontext` function accesses the current context "
|
|
"and allows the settings to be changed. This approach meets the needs of "
|
|
"most applications."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:261
|
|
msgid ""
|
|
"For more advanced work, it may be useful to create alternate contexts using "
|
|
"the Context() constructor. To make an alternate active, use the :func:"
|
|
"`setcontext` function."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:265
|
|
msgid ""
|
|
"In accordance with the standard, the :mod:`decimal` module provides two "
|
|
"ready to use standard contexts, :const:`BasicContext` and :const:"
|
|
"`ExtendedContext`. The former is especially useful for debugging because "
|
|
"many of the traps are enabled:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:294
|
|
msgid ""
|
|
"Contexts also have signal flags for monitoring exceptional conditions "
|
|
"encountered during computations. The flags remain set until explicitly "
|
|
"cleared, so it is best to clear the flags before each set of monitored "
|
|
"computations by using the :meth:`clear_flags` method. ::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:307
|
|
msgid ""
|
|
"The *flags* entry shows that the rational approximation to :const:`Pi` was "
|
|
"rounded (digits beyond the context precision were thrown away) and that the "
|
|
"result is inexact (some of the discarded digits were non-zero)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:311
|
|
msgid ""
|
|
"Individual traps are set using the dictionary in the :attr:`traps` field of "
|
|
"a context:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:326
|
|
msgid ""
|
|
"Most programs adjust the current context only once, at the beginning of the "
|
|
"program. And, in many applications, data is converted to :class:`Decimal` "
|
|
"with a single cast inside a loop. With context set and decimals created, "
|
|
"the bulk of the program manipulates the data no differently than with other "
|
|
"Python numeric types."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:338
|
|
msgid "Decimal objects"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:343
|
|
msgid "Construct a new :class:`Decimal` object based from *value*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:345
|
|
msgid ""
|
|
"*value* can be an integer, string, tuple, :class:`float`, or another :class:"
|
|
"`Decimal` object. If no *value* is given, returns ``Decimal('0')``. If "
|
|
"*value* is a string, it should conform to the decimal numeric string syntax "
|
|
"after leading and trailing whitespace characters, as well as underscores "
|
|
"throughout, are removed::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:361
|
|
msgid ""
|
|
"Other Unicode decimal digits are also permitted where ``digit`` appears "
|
|
"above. These include decimal digits from various other alphabets (for "
|
|
"example, Arabic-Indic and Devanāgarī digits) along with the fullwidth digits "
|
|
"``'\\uff10'`` through ``'\\uff19'``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:366
|
|
msgid ""
|
|
"If *value* is a :class:`tuple`, it should have three components, a sign (:"
|
|
"const:`0` for positive or :const:`1` for negative), a :class:`tuple` of "
|
|
"digits, and an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), "
|
|
"-3))`` returns ``Decimal('1.414')``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:371
|
|
msgid ""
|
|
"If *value* is a :class:`float`, the binary floating point value is "
|
|
"losslessly converted to its exact decimal equivalent. This conversion can "
|
|
"often require 53 or more digits of precision. For example, "
|
|
"``Decimal(float('1.1'))`` converts to "
|
|
"``Decimal('1.100000000000000088817841970012523233890533447265625')``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:377
|
|
msgid ""
|
|
"The *context* precision does not affect how many digits are stored. That is "
|
|
"determined exclusively by the number of digits in *value*. For example, "
|
|
"``Decimal('3.00000')`` records all five zeros even if the context precision "
|
|
"is only three."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:382
|
|
msgid ""
|
|
"The purpose of the *context* argument is determining what to do if *value* "
|
|
"is a malformed string. If the context traps :const:`InvalidOperation`, an "
|
|
"exception is raised; otherwise, the constructor returns a new Decimal with "
|
|
"the value of :const:`NaN`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:387
|
|
msgid "Once constructed, :class:`Decimal` objects are immutable."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:389
|
|
msgid ""
|
|
"The argument to the constructor is now permitted to be a :class:`float` "
|
|
"instance."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:393
|
|
msgid ""
|
|
":class:`float` arguments raise an exception if the :exc:`FloatOperation` "
|
|
"trap is set. By default the trap is off."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:397
|
|
msgid ""
|
|
"Underscores are allowed for grouping, as with integral and floating-point "
|
|
"literals in code."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:401
|
|
msgid ""
|
|
"Decimal floating point objects share many properties with the other built-in "
|
|
"numeric types such as :class:`float` and :class:`int`. All of the usual "
|
|
"math operations and special methods apply. Likewise, decimal objects can be "
|
|
"copied, pickled, printed, used as dictionary keys, used as set elements, "
|
|
"compared, sorted, and coerced to another type (such as :class:`float` or :"
|
|
"class:`int`)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:408
|
|
msgid ""
|
|
"There are some small differences between arithmetic on Decimal objects and "
|
|
"arithmetic on integers and floats. When the remainder operator ``%`` is "
|
|
"applied to Decimal objects, the sign of the result is the sign of the "
|
|
"*dividend* rather than the sign of the divisor::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:418
|
|
msgid ""
|
|
"The integer division operator ``//`` behaves analogously, returning the "
|
|
"integer part of the true quotient (truncating towards zero) rather than its "
|
|
"floor, so as to preserve the usual identity ``x == (x // y) * y + x % y``::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:427
|
|
msgid ""
|
|
"The ``%`` and ``//`` operators implement the ``remainder`` and ``divide-"
|
|
"integer`` operations (respectively) as described in the specification."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:431
|
|
msgid ""
|
|
"Decimal objects cannot generally be combined with floats or instances of :"
|
|
"class:`fractions.Fraction` in arithmetic operations: an attempt to add a :"
|
|
"class:`Decimal` to a :class:`float`, for example, will raise a :exc:"
|
|
"`TypeError`. However, it is possible to use Python's comparison operators "
|
|
"to compare a :class:`Decimal` instance ``x`` with another number ``y``. "
|
|
"This avoids confusing results when doing equality comparisons between "
|
|
"numbers of different types."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:439
|
|
msgid ""
|
|
"Mixed-type comparisons between :class:`Decimal` instances and other numeric "
|
|
"types are now fully supported."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:443
|
|
msgid ""
|
|
"In addition to the standard numeric properties, decimal floating point "
|
|
"objects also have a number of specialized methods:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:449
|
|
msgid ""
|
|
"Return the adjusted exponent after shifting out the coefficient's rightmost "
|
|
"digits until only the lead digit remains: ``Decimal('321e+5').adjusted()`` "
|
|
"returns seven. Used for determining the position of the most significant "
|
|
"digit with respect to the decimal point."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:456
|
|
msgid ""
|
|
"Return a pair ``(n, d)`` of integers that represent the given :class:"
|
|
"`Decimal` instance as a fraction, in lowest terms and with a positive "
|
|
"denominator::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:463
|
|
msgid ""
|
|
"The conversion is exact. Raise OverflowError on infinities and ValueError "
|
|
"on NaNs."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:470
|
|
msgid ""
|
|
"Return a :term:`named tuple` representation of the number: "
|
|
"``DecimalTuple(sign, digits, exponent)``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:476
|
|
msgid ""
|
|
"Return the canonical encoding of the argument. Currently, the encoding of "
|
|
"a :class:`Decimal` instance is always canonical, so this operation returns "
|
|
"its argument unchanged."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:482
|
|
msgid ""
|
|
"Compare the values of two Decimal instances. :meth:`compare` returns a "
|
|
"Decimal instance, and if either operand is a NaN then the result is a NaN::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:493
|
|
msgid ""
|
|
"This operation is identical to the :meth:`compare` method, except that all "
|
|
"NaNs signal. That is, if neither operand is a signaling NaN then any quiet "
|
|
"NaN operand is treated as though it were a signaling NaN."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:499
|
|
msgid ""
|
|
"Compare two operands using their abstract representation rather than their "
|
|
"numerical value. Similar to the :meth:`compare` method, but the result "
|
|
"gives a total ordering on :class:`Decimal` instances. Two :class:`Decimal` "
|
|
"instances with the same numeric value but different representations compare "
|
|
"unequal in this ordering:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:508
|
|
msgid ""
|
|
"Quiet and signaling NaNs are also included in the total ordering. The "
|
|
"result of this function is ``Decimal('0')`` if both operands have the same "
|
|
"representation, ``Decimal('-1')`` if the first operand is lower in the total "
|
|
"order than the second, and ``Decimal('1')`` if the first operand is higher "
|
|
"in the total order than the second operand. See the specification for "
|
|
"details of the total order."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:515 ../Doc/library/decimal.rst:526
|
|
#: ../Doc/library/decimal.rst:554 ../Doc/library/decimal.rst:829
|
|
msgid ""
|
|
"This operation is unaffected by context and is quiet: no flags are changed "
|
|
"and no rounding is performed. As an exception, the C version may raise "
|
|
"InvalidOperation if the second operand cannot be converted exactly."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:521
|
|
msgid ""
|
|
"Compare two operands using their abstract representation rather than their "
|
|
"value as in :meth:`compare_total`, but ignoring the sign of each operand. "
|
|
"``x.compare_total_mag(y)`` is equivalent to ``x.copy_abs().compare_total(y."
|
|
"copy_abs())``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:532
|
|
msgid ""
|
|
"Just returns self, this method is only to comply with the Decimal "
|
|
"Specification."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:537
|
|
msgid ""
|
|
"Return the absolute value of the argument. This operation is unaffected by "
|
|
"the context and is quiet: no flags are changed and no rounding is performed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:543
|
|
msgid ""
|
|
"Return the negation of the argument. This operation is unaffected by the "
|
|
"context and is quiet: no flags are changed and no rounding is performed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:548
|
|
msgid ""
|
|
"Return a copy of the first operand with the sign set to be the same as the "
|
|
"sign of the second operand. For example:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:560
|
|
msgid ""
|
|
"Return the value of the (natural) exponential function ``e**x`` at the given "
|
|
"number. The result is correctly rounded using the :const:`ROUND_HALF_EVEN` "
|
|
"rounding mode."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:571
|
|
msgid "Classmethod that converts a float to a decimal number, exactly."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:573
|
|
msgid ""
|
|
"Note `Decimal.from_float(0.1)` is not the same as `Decimal('0.1')`. Since "
|
|
"0.1 is not exactly representable in binary floating point, the value is "
|
|
"stored as the nearest representable value which is `0x1.999999999999ap-4`. "
|
|
"That equivalent value in decimal is "
|
|
"`0.1000000000000000055511151231257827021181583404541015625`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:579
|
|
msgid ""
|
|
"From Python 3.2 onwards, a :class:`Decimal` instance can also be constructed "
|
|
"directly from a :class:`float`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:597
|
|
msgid ""
|
|
"Fused multiply-add. Return self*other+third with no rounding of the "
|
|
"intermediate product self*other."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:605
|
|
msgid ""
|
|
"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 :const:`True`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:611
|
|
msgid ""
|
|
"Return :const:`True` if the argument is a finite number, and :const:`False` "
|
|
"if the argument is an infinity or a NaN."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:616
|
|
msgid ""
|
|
"Return :const:`True` if the argument is either positive or negative infinity "
|
|
"and :const:`False` otherwise."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:621
|
|
msgid ""
|
|
"Return :const:`True` if the argument is a (quiet or signaling) NaN and :"
|
|
"const:`False` otherwise."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:626
|
|
msgid ""
|
|
"Return :const:`True` if the argument is a *normal* finite number. Return :"
|
|
"const:`False` if the argument is zero, subnormal, infinite or a NaN."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:631
|
|
msgid ""
|
|
"Return :const:`True` if the argument is a quiet NaN, and :const:`False` "
|
|
"otherwise."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:636
|
|
msgid ""
|
|
"Return :const:`True` if the argument has a negative sign and :const:`False` "
|
|
"otherwise. Note that zeros and NaNs can both carry signs."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:641
|
|
msgid ""
|
|
"Return :const:`True` if the argument is a signaling NaN and :const:`False` "
|
|
"otherwise."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:646
|
|
msgid ""
|
|
"Return :const:`True` if the argument is subnormal, and :const:`False` "
|
|
"otherwise."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:651
|
|
msgid ""
|
|
"Return :const:`True` if the argument is a (positive or negative) zero and :"
|
|
"const:`False` otherwise."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:656
|
|
msgid ""
|
|
"Return the natural (base e) logarithm of the operand. The result is "
|
|
"correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:661
|
|
msgid ""
|
|
"Return the base ten logarithm of the operand. The result is correctly "
|
|
"rounded using the :const:`ROUND_HALF_EVEN` rounding mode."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:666
|
|
msgid ""
|
|
"For a nonzero number, return the adjusted exponent of its operand as a :"
|
|
"class:`Decimal` instance. If the operand is a zero then ``Decimal('-"
|
|
"Infinity')`` is returned and the :const:`DivisionByZero` flag is raised. If "
|
|
"the operand is an infinity then ``Decimal('Infinity')`` is returned."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:674
|
|
msgid ""
|
|
":meth:`logical_and` is a logical operation which takes two *logical "
|
|
"operands* (see :ref:`logical_operands_label`). The result is the digit-wise "
|
|
"``and`` of the two operands."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:680
|
|
msgid ""
|
|
":meth:`logical_invert` is a logical operation. The result is the digit-wise "
|
|
"inversion of the operand."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:685
|
|
msgid ""
|
|
":meth:`logical_or` is a logical operation which takes two *logical operands* "
|
|
"(see :ref:`logical_operands_label`). The result is the digit-wise ``or`` of "
|
|
"the two operands."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:691
|
|
msgid ""
|
|
":meth:`logical_xor` is a logical operation which takes two *logical "
|
|
"operands* (see :ref:`logical_operands_label`). The result is the digit-wise "
|
|
"exclusive or of the two operands."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:697
|
|
msgid ""
|
|
"Like ``max(self, other)`` except that the context rounding rule is applied "
|
|
"before returning and that :const:`NaN` values are either signaled or ignored "
|
|
"(depending on the context and whether they are signaling or quiet)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:704
|
|
msgid ""
|
|
"Similar to the :meth:`.max` method, but the comparison is done using the "
|
|
"absolute values of the operands."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:709
|
|
msgid ""
|
|
"Like ``min(self, other)`` except that the context rounding rule is applied "
|
|
"before returning and that :const:`NaN` values are either signaled or ignored "
|
|
"(depending on the context and whether they are signaling or quiet)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:716
|
|
msgid ""
|
|
"Similar to the :meth:`.min` method, but the comparison is done using the "
|
|
"absolute values of the operands."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:721
|
|
msgid ""
|
|
"Return the largest number representable in the given context (or in the "
|
|
"current thread's context if no context is given) that is smaller than the "
|
|
"given operand."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:727
|
|
msgid ""
|
|
"Return the smallest number representable in the given context (or in the "
|
|
"current thread's context if no context is given) that is larger than the "
|
|
"given operand."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:733
|
|
msgid ""
|
|
"If the two operands are unequal, return the number closest to the first "
|
|
"operand in the direction of the second operand. If both operands are "
|
|
"numerically equal, return a copy of the first operand with the sign set to "
|
|
"be the same as the sign of the second operand."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:740
|
|
msgid ""
|
|
"Normalize the number by stripping the rightmost trailing zeros and "
|
|
"converting any result equal to :const:`Decimal('0')` to :const:"
|
|
"`Decimal('0e0')`. Used for producing canonical values for attributes of an "
|
|
"equivalence class. For example, ``Decimal('32.100')`` and "
|
|
"``Decimal('0.321000e+2')`` both normalize to the equivalent value "
|
|
"``Decimal('32.1')``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:749
|
|
msgid ""
|
|
"Return a string describing the *class* of the operand. The returned value "
|
|
"is one of the following ten strings."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:752
|
|
msgid "``\"-Infinity\"``, indicating that the operand is negative infinity."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:753
|
|
msgid ""
|
|
"``\"-Normal\"``, indicating that the operand is a negative normal number."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:754
|
|
msgid ""
|
|
"``\"-Subnormal\"``, indicating that the operand is negative and subnormal."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:755
|
|
msgid "``\"-Zero\"``, indicating that the operand is a negative zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:756
|
|
msgid "``\"+Zero\"``, indicating that the operand is a positive zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:757
|
|
msgid ""
|
|
"``\"+Subnormal\"``, indicating that the operand is positive and subnormal."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:758
|
|
msgid ""
|
|
"``\"+Normal\"``, indicating that the operand is a positive normal number."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:759
|
|
msgid "``\"+Infinity\"``, indicating that the operand is positive infinity."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:760
|
|
msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:761
|
|
msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:765
|
|
msgid ""
|
|
"Return a value equal to the first operand after rounding and having the "
|
|
"exponent of the second operand."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:771
|
|
msgid ""
|
|
"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 there is an error condition, the "
|
|
"quantized exponent is always equal to that of the right-hand operand."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:777
|
|
msgid ""
|
|
"Also unlike other operations, quantize never signals Underflow, even if the "
|
|
"result is subnormal and inexact."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:780
|
|
msgid ""
|
|
"If the exponent of the second operand is larger than that of the first then "
|
|
"rounding may be necessary. In this case, the rounding mode is determined by "
|
|
"the ``rounding`` argument if given, else by the given ``context`` argument; "
|
|
"if neither argument is given the rounding mode of the current thread's "
|
|
"context is used."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:786
|
|
msgid ""
|
|
"An error is returned whenever the resulting exponent is greater than :attr:"
|
|
"`Emax` or less than :attr:`Etiny`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:791
|
|
msgid ""
|
|
"Return ``Decimal(10)``, the radix (base) in which the :class:`Decimal` class "
|
|
"does all its arithmetic. Included for compatibility with the specification."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:797
|
|
msgid ""
|
|
"Return the remainder from dividing *self* by *other*. This differs from "
|
|
"``self % other`` in that the sign of the remainder is chosen so as to "
|
|
"minimize its absolute value. More precisely, the return value is ``self - n "
|
|
"* other`` where ``n`` is the integer nearest to the exact value of ``self / "
|
|
"other``, and if two integers are equally near then the even one is chosen."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:804
|
|
msgid "If the result is zero then its sign will be the sign of *self*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:815
|
|
msgid ""
|
|
"Return the result of rotating the digits of the first operand by an amount "
|
|
"specified by the second operand. The second operand must be an integer in "
|
|
"the range -precision through precision. The absolute value of the second "
|
|
"operand gives the number of places to rotate. If the second operand is "
|
|
"positive then rotation is to the left; otherwise rotation is to the right. "
|
|
"The coefficient of the first operand is padded on the left with zeros to "
|
|
"length precision if necessary. The sign and exponent of the first operand "
|
|
"are unchanged."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:826
|
|
msgid ""
|
|
"Test whether self and other have the same exponent or whether both are :"
|
|
"const:`NaN`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:835
|
|
msgid ""
|
|
"Return the first operand with exponent adjusted by the second. Equivalently, "
|
|
"return the first operand multiplied by ``10**other``. The second operand "
|
|
"must be an integer."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:841
|
|
msgid ""
|
|
"Return the result of shifting the digits of the first operand by an amount "
|
|
"specified by the second operand. The second operand must be an integer in "
|
|
"the range -precision through precision. The absolute value of the second "
|
|
"operand gives the number of places to shift. If the second operand is "
|
|
"positive then the shift is to the left; otherwise the shift is to the "
|
|
"right. Digits shifted into the coefficient are zeros. The sign and "
|
|
"exponent of the first operand are unchanged."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:851
|
|
msgid "Return the square root of the argument to full precision."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:856 ../Doc/library/decimal.rst:1432
|
|
msgid ""
|
|
"Convert to a string, using engineering notation if an exponent is needed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:858 ../Doc/library/decimal.rst:1434
|
|
msgid ""
|
|
"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."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:862
|
|
msgid ""
|
|
"For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:866
|
|
msgid ""
|
|
"Identical to the :meth:`to_integral_value` method. The ``to_integral`` name "
|
|
"has been kept for compatibility with older versions."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:871
|
|
msgid ""
|
|
"Round to the nearest integer, signaling :const:`Inexact` or :const:`Rounded` "
|
|
"as appropriate if rounding occurs. The rounding mode is determined by the "
|
|
"``rounding`` parameter if given, else by the given ``context``. If neither "
|
|
"parameter is given then the rounding mode of the current context is used."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:879
|
|
msgid ""
|
|
"Round to the nearest integer without signaling :const:`Inexact` or :const:"
|
|
"`Rounded`. If given, applies *rounding*; otherwise, uses the rounding "
|
|
"method in either the supplied *context* or the current context."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:887
|
|
msgid "Logical operands"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:889
|
|
msgid ""
|
|
"The :meth:`logical_and`, :meth:`logical_invert`, :meth:`logical_or`, and :"
|
|
"meth:`logical_xor` methods expect their arguments to be *logical operands*. "
|
|
"A *logical operand* is a :class:`Decimal` instance whose exponent and sign "
|
|
"are both zero, and whose digits are all either :const:`0` or :const:`1`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:901
|
|
msgid "Context objects"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:903
|
|
msgid ""
|
|
"Contexts are environments for arithmetic operations. They govern precision, "
|
|
"set rules for rounding, determine which signals are treated as exceptions, "
|
|
"and limit the range for exponents."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:907
|
|
msgid ""
|
|
"Each thread has its own current context which is accessed or changed using "
|
|
"the :func:`getcontext` and :func:`setcontext` functions:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:913
|
|
msgid "Return the current context for the active thread."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:918
|
|
msgid "Set the current context for the active thread to *c*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:920
|
|
msgid ""
|
|
"You can also use the :keyword:`with` statement and the :func:`localcontext` "
|
|
"function to temporarily change the active context."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:925
|
|
msgid ""
|
|
"Return a context manager that will set the current context for the active "
|
|
"thread to a copy of *ctx* on entry to the with-statement and restore the "
|
|
"previous context when exiting the with-statement. If no context is "
|
|
"specified, a copy of the current context is used."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:930
|
|
msgid ""
|
|
"For example, the following code sets the current decimal precision to 42 "
|
|
"places, performs a calculation, and then automatically restores the previous "
|
|
"context::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:940
|
|
msgid ""
|
|
"New contexts can also be created using the :class:`Context` constructor "
|
|
"described below. In addition, the module provides three pre-made contexts:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:946
|
|
msgid ""
|
|
"This is a standard context defined by the General Decimal Arithmetic "
|
|
"Specification. Precision is set to nine. Rounding is set to :const:"
|
|
"`ROUND_HALF_UP`. All flags are cleared. All traps are enabled (treated as "
|
|
"exceptions) except :const:`Inexact`, :const:`Rounded`, and :const:"
|
|
"`Subnormal`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:952
|
|
msgid ""
|
|
"Because many of the traps are enabled, this context is useful for debugging."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:957
|
|
msgid ""
|
|
"This is a standard context defined by the General Decimal Arithmetic "
|
|
"Specification. Precision is set to nine. Rounding is set to :const:"
|
|
"`ROUND_HALF_EVEN`. All flags are cleared. No traps are enabled (so that "
|
|
"exceptions are not raised during computations)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:962
|
|
msgid ""
|
|
"Because the traps are disabled, this context is useful for applications that "
|
|
"prefer to have result value of :const:`NaN` or :const:`Infinity` instead of "
|
|
"raising exceptions. This allows an application to complete a run in the "
|
|
"presence of conditions that would otherwise halt the program."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:970
|
|
msgid ""
|
|
"This context is used by the :class:`Context` constructor as a prototype for "
|
|
"new contexts. Changing a field (such a precision) has the effect of "
|
|
"changing the default for new contexts created by the :class:`Context` "
|
|
"constructor."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:974
|
|
msgid ""
|
|
"This context is most useful in multi-threaded environments. Changing one of "
|
|
"the fields before threads are started has the effect of setting system-wide "
|
|
"defaults. Changing the fields after threads have started is not recommended "
|
|
"as it would require thread synchronization to prevent race conditions."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:979
|
|
msgid ""
|
|
"In single threaded environments, it is preferable to not use this context at "
|
|
"all. Instead, simply create contexts explicitly as described below."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:982
|
|
msgid ""
|
|
"The default values are :attr:`prec`\\ =\\ :const:`28`, :attr:`rounding`\\ ="
|
|
"\\ :const:`ROUND_HALF_EVEN`, and enabled traps for :class:`Overflow`, :class:"
|
|
"`InvalidOperation`, and :class:`DivisionByZero`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:987
|
|
msgid ""
|
|
"In addition to the three supplied contexts, new contexts can be created with "
|
|
"the :class:`Context` constructor."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:993
|
|
msgid ""
|
|
"Creates a new context. If a field is not specified or is :const:`None`, the "
|
|
"default values are copied from the :const:`DefaultContext`. If the *flags* "
|
|
"field is not specified or is :const:`None`, all flags are cleared."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:997
|
|
msgid ""
|
|
"*prec* is an integer in the range [:const:`1`, :const:`MAX_PREC`] that sets "
|
|
"the precision for arithmetic operations in the context."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1000
|
|
msgid ""
|
|
"The *rounding* option is one of the constants listed in the section "
|
|
"`Rounding Modes`_."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1003
|
|
msgid ""
|
|
"The *traps* and *flags* fields list any signals to be set. Generally, new "
|
|
"contexts should only set traps and leave the flags clear."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1006
|
|
msgid ""
|
|
"The *Emin* and *Emax* fields are integers specifying the outer limits "
|
|
"allowable for exponents. *Emin* must be in the range [:const:`MIN_EMIN`, :"
|
|
"const:`0`], *Emax* in the range [:const:`0`, :const:`MAX_EMAX`]."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1010
|
|
msgid ""
|
|
"The *capitals* field is either :const:`0` or :const:`1` (the default). If "
|
|
"set to :const:`1`, exponents are printed with a capital :const:`E`; "
|
|
"otherwise, a lowercase :const:`e` is used: :const:`Decimal('6.02e+23')`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1014
|
|
msgid ""
|
|
"The *clamp* field is either :const:`0` (the default) or :const:`1`. If set "
|
|
"to :const:`1`, the exponent ``e`` of a :class:`Decimal` instance "
|
|
"representable in this context is strictly limited to the range ``Emin - prec "
|
|
"+ 1 <= e <= Emax - prec + 1``. If *clamp* is :const:`0` then a weaker "
|
|
"condition holds: the adjusted exponent of the :class:`Decimal` instance is "
|
|
"at most ``Emax``. When *clamp* is :const:`1`, a large normal number will, "
|
|
"where possible, have its exponent reduced and a corresponding number of "
|
|
"zeros added to its coefficient, in order to fit the exponent constraints; "
|
|
"this preserves the value of the number but loses information about "
|
|
"significant trailing zeros. For example::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1029
|
|
msgid ""
|
|
"A *clamp* value of :const:`1` allows compatibility with the fixed-width "
|
|
"decimal interchange formats specified in IEEE 754."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1032
|
|
msgid ""
|
|
"The :class:`Context` class defines several general purpose methods as well "
|
|
"as a large number of methods for doing arithmetic directly in a given "
|
|
"context. In addition, for each of the :class:`Decimal` methods described "
|
|
"above (with the exception of the :meth:`adjusted` and :meth:`as_tuple` "
|
|
"methods) there is a corresponding :class:`Context` method. For example, for "
|
|
"a :class:`Context` instance ``C`` and :class:`Decimal` instance ``x``, ``C."
|
|
"exp(x)`` is equivalent to ``x.exp(context=C)``. Each :class:`Context` "
|
|
"method accepts a Python integer (an instance of :class:`int`) anywhere that "
|
|
"a Decimal instance is accepted."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1045
|
|
msgid "Resets all of the flags to :const:`0`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1049
|
|
msgid "Resets all of the traps to :const:`0`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1055
|
|
msgid "Return a duplicate of the context."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1059
|
|
msgid "Return a copy of the Decimal instance num."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1063
|
|
msgid ""
|
|
"Creates a new Decimal instance from *num* but using *self* as context. "
|
|
"Unlike the :class:`Decimal` constructor, the context precision, rounding "
|
|
"method, flags, and traps are applied to the conversion."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1067
|
|
msgid ""
|
|
"This is useful because constants are often given to a greater precision than "
|
|
"is needed by the application. Another benefit is that rounding immediately "
|
|
"eliminates unintended effects from digits beyond the current precision. In "
|
|
"the following example, using unrounded inputs means that adding zero to a "
|
|
"sum can change the result:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1081
|
|
msgid ""
|
|
"This method implements the to-number operation of the IBM specification. If "
|
|
"the argument is a string, no leading or trailing whitespace or underscores "
|
|
"are permitted."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1087
|
|
msgid ""
|
|
"Creates a new Decimal instance from a float *f* but rounding using *self* as "
|
|
"the context. Unlike the :meth:`Decimal.from_float` class method, the "
|
|
"context precision, rounding method, flags, and traps are applied to the "
|
|
"conversion."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1107
|
|
msgid ""
|
|
"Returns a value equal to ``Emin - prec + 1`` which is the minimum exponent "
|
|
"value for subnormal results. When underflow occurs, the exponent is set to :"
|
|
"const:`Etiny`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1113
|
|
msgid "Returns a value equal to ``Emax - prec + 1``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1115
|
|
msgid ""
|
|
"The usual approach to working with decimals is to create :class:`Decimal` "
|
|
"instances and then apply arithmetic operations which take place within the "
|
|
"current context for the active thread. An alternative approach is to use "
|
|
"context methods for calculating within a specific context. The methods are "
|
|
"similar to those for the :class:`Decimal` class and are only briefly "
|
|
"recounted here."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1125
|
|
msgid "Returns the absolute value of *x*."
|
|
msgstr "Renvoie la valeur absolue de *x*."
|
|
|
|
#: ../Doc/library/decimal.rst:1130
|
|
msgid "Return the sum of *x* and *y*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1135
|
|
msgid "Returns the same Decimal object *x*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1140
|
|
msgid "Compares *x* and *y* numerically."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1145
|
|
msgid "Compares the values of the two operands numerically."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1150
|
|
msgid "Compares two operands using their abstract representation."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1155
|
|
msgid ""
|
|
"Compares two operands using their abstract representation, ignoring sign."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1160
|
|
msgid "Returns a copy of *x* with the sign set to 0."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1165
|
|
msgid "Returns a copy of *x* with the sign inverted."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1170
|
|
msgid "Copies the sign from *y* to *x*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1175
|
|
msgid "Return *x* divided by *y*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1180
|
|
msgid "Return *x* divided by *y*, truncated to an integer."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1185
|
|
msgid "Divides two numbers and returns the integer part of the result."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1190
|
|
msgid "Returns `e ** x`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1195
|
|
msgid "Returns *x* multiplied by *y*, plus *z*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1200
|
|
msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1205
|
|
msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1210
|
|
msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1215
|
|
msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1220
|
|
msgid ""
|
|
"Returns ``True`` if *x* is a normal number; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1225
|
|
msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1230
|
|
msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1235
|
|
msgid ""
|
|
"Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1240
|
|
msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1245
|
|
msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1250
|
|
msgid "Returns the natural (base e) logarithm of *x*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1255
|
|
msgid "Returns the base 10 logarithm of *x*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1260
|
|
msgid "Returns the exponent of the magnitude of the operand's MSD."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1265
|
|
msgid "Applies the logical operation *and* between each operand's digits."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1270
|
|
msgid "Invert all the digits in *x*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1275
|
|
msgid "Applies the logical operation *or* between each operand's digits."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1280
|
|
msgid "Applies the logical operation *xor* between each operand's digits."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1285
|
|
msgid "Compares two values numerically and returns the maximum."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1290 ../Doc/library/decimal.rst:1300
|
|
msgid "Compares the values numerically with their sign ignored."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1295
|
|
msgid "Compares two values numerically and returns the minimum."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1305
|
|
msgid "Minus corresponds to the unary prefix minus operator in Python."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1310
|
|
msgid "Return the product of *x* and *y*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1315
|
|
msgid "Returns the largest representable number smaller than *x*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1320
|
|
msgid "Returns the smallest representable number larger than *x*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1325
|
|
msgid "Returns the number closest to *x*, in direction towards *y*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1330
|
|
msgid "Reduces *x* to its simplest form."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1335
|
|
msgid "Returns an indication of the class of *x*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1340
|
|
msgid ""
|
|
"Plus corresponds to the unary prefix plus operator in Python. This "
|
|
"operation applies the context precision and rounding, so it is *not* an "
|
|
"identity operation."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1347
|
|
msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1349
|
|
msgid ""
|
|
"With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must "
|
|
"be integral. The result will be inexact unless ``y`` is integral and the "
|
|
"result is finite and can be expressed exactly in 'precision' digits. The "
|
|
"rounding mode of the context is used. Results are always correctly-rounded "
|
|
"in the Python version."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1355
|
|
msgid ""
|
|
"The C module computes :meth:`power` in terms of the correctly-rounded :meth:"
|
|
"`exp` and :meth:`ln` functions. The result is well-defined but only \"almost "
|
|
"always correctly-rounded\"."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1360
|
|
msgid ""
|
|
"With three arguments, compute ``(x**y) % modulo``. For the three argument "
|
|
"form, the following restrictions on the arguments hold:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1363
|
|
msgid "all three arguments must be integral"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1364
|
|
msgid "``y`` must be nonnegative"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1365
|
|
msgid "at least one of ``x`` or ``y`` must be nonzero"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1366
|
|
msgid "``modulo`` must be nonzero and have at most 'precision' digits"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1368
|
|
msgid ""
|
|
"The value resulting from ``Context.power(x, y, modulo)`` is equal to the "
|
|
"value that would be obtained by computing ``(x**y) % modulo`` with unbounded "
|
|
"precision, but is computed more efficiently. The exponent of the result is "
|
|
"zero, regardless of the exponents of ``x``, ``y`` and ``modulo``. The "
|
|
"result is always exact."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1378
|
|
msgid "Returns a value equal to *x* (rounded), having the exponent of *y*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1383
|
|
msgid "Just returns 10, as this is Decimal, :)"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1388
|
|
msgid "Returns the remainder from integer division."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1390
|
|
msgid ""
|
|
"The sign of the result, if non-zero, is the same as that of the original "
|
|
"dividend."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1396
|
|
msgid ""
|
|
"Returns ``x - y * n``, where *n* is the integer nearest the exact value of "
|
|
"``x / y`` (if the result is 0 then its sign will be the sign of *x*)."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1402
|
|
msgid "Returns a rotated copy of *x*, *y* times."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1407
|
|
msgid "Returns ``True`` if the two operands have the same exponent."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1412
|
|
msgid "Returns the first operand after adding the second value its exp."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1417
|
|
msgid "Returns a shifted copy of *x*, *y* times."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1422
|
|
msgid "Square root of a non-negative number to context precision."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1427
|
|
msgid "Return the difference between *x* and *y*."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1441
|
|
msgid "Rounds to an integer."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1446
|
|
msgid "Converts a number to a string using scientific notation."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1453
|
|
msgid "Constants"
|
|
msgstr "Constantes"
|
|
|
|
#: ../Doc/library/decimal.rst:1455
|
|
msgid ""
|
|
"The constants in this section are only relevant for the C module. They are "
|
|
"also included in the pure Python version for compatibility."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1459
|
|
msgid "32-bit"
|
|
msgstr "32-bit"
|
|
|
|
#: ../Doc/library/decimal.rst:1459
|
|
msgid "64-bit"
|
|
msgstr "64-bit"
|
|
|
|
#: ../Doc/library/decimal.rst:1461 ../Doc/library/decimal.rst:1463
|
|
msgid ":const:`425000000`"
|
|
msgstr ":const:`425000000`"
|
|
|
|
#: ../Doc/library/decimal.rst:1461 ../Doc/library/decimal.rst:1463
|
|
msgid ":const:`999999999999999999`"
|
|
msgstr ":const:`999999999999999999`"
|
|
|
|
#: ../Doc/library/decimal.rst:1465
|
|
msgid ":const:`-425000000`"
|
|
msgstr ":const:`-425000000`"
|
|
|
|
#: ../Doc/library/decimal.rst:1465
|
|
msgid ":const:`-999999999999999999`"
|
|
msgstr ":const:`-999999999999999999`"
|
|
|
|
#: ../Doc/library/decimal.rst:1467
|
|
msgid ":const:`-849999999`"
|
|
msgstr ":const:`-849999999`"
|
|
|
|
#: ../Doc/library/decimal.rst:1467
|
|
msgid ":const:`-1999999999999999997`"
|
|
msgstr ":const:`-1999999999999999997`"
|
|
|
|
#: ../Doc/library/decimal.rst:1473
|
|
msgid ""
|
|
"The default value is ``True``. If Python is compiled without threads, the C "
|
|
"version automatically disables the expensive thread local context machinery. "
|
|
"In this case, the value is ``False``."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1478
|
|
msgid "Rounding modes"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1482
|
|
msgid "Round towards :const:`Infinity`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1486
|
|
msgid "Round towards zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1490
|
|
msgid "Round towards :const:`-Infinity`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1494
|
|
msgid "Round to nearest with ties going towards zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1498
|
|
msgid "Round to nearest with ties going to nearest even integer."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1502
|
|
msgid "Round to nearest with ties going away from zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1506
|
|
msgid "Round away from zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1510
|
|
msgid ""
|
|
"Round away from zero if last digit after rounding towards zero would have "
|
|
"been 0 or 5; otherwise round towards zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1517
|
|
msgid "Signals"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1519
|
|
msgid ""
|
|
"Signals represent conditions that arise during computation. Each corresponds "
|
|
"to one context flag and one context trap enabler."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1522
|
|
msgid ""
|
|
"The context flag is set whenever the condition is encountered. After the "
|
|
"computation, flags may be checked for informational purposes (for instance, "
|
|
"to determine whether a computation was exact). After checking the flags, be "
|
|
"sure to clear all flags before starting the next computation."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1527
|
|
msgid ""
|
|
"If the context's trap enabler is set for the signal, then the condition "
|
|
"causes a Python exception to be raised. For example, if the :class:"
|
|
"`DivisionByZero` trap is set, then a :exc:`DivisionByZero` exception is "
|
|
"raised upon encountering the condition."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1535
|
|
msgid "Altered an exponent to fit representation constraints."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1537
|
|
msgid ""
|
|
"Typically, clamping occurs when an exponent falls outside the context's :"
|
|
"attr:`Emin` and :attr:`Emax` limits. If possible, the exponent is reduced "
|
|
"to fit by adding zeros to the coefficient."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1544
|
|
msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1549
|
|
msgid "Signals the division of a non-infinite number by zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1551
|
|
msgid ""
|
|
"Can occur with division, modulo division, or when raising a number to a "
|
|
"negative power. If this signal is not trapped, returns :const:`Infinity` "
|
|
"or :const:`-Infinity` with the sign determined by the inputs to the "
|
|
"calculation."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1558
|
|
msgid "Indicates that rounding occurred and the result is not exact."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1560
|
|
msgid ""
|
|
"Signals when non-zero digits were discarded during rounding. The rounded "
|
|
"result is returned. The signal flag or trap is used to detect when results "
|
|
"are inexact."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1567
|
|
msgid "An invalid operation was performed."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1569
|
|
msgid ""
|
|
"Indicates that an operation was requested that does not make sense. If not "
|
|
"trapped, returns :const:`NaN`. Possible causes include::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1585
|
|
msgid "Numerical overflow."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1587
|
|
msgid ""
|
|
"Indicates the exponent is larger than :attr:`Emax` after rounding has "
|
|
"occurred. If not trapped, the result depends on the rounding mode, either "
|
|
"pulling inward to the largest representable finite number or rounding "
|
|
"outward to :const:`Infinity`. In either case, :class:`Inexact` and :class:"
|
|
"`Rounded` are also signaled."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1596
|
|
msgid "Rounding occurred though possibly no information was lost."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1598
|
|
msgid ""
|
|
"Signaled whenever rounding discards digits; even if those digits are zero "
|
|
"(such as rounding :const:`5.00` to :const:`5.0`). If not trapped, returns "
|
|
"the result unchanged. This signal is used to detect loss of significant "
|
|
"digits."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1606
|
|
msgid "Exponent was lower than :attr:`Emin` prior to rounding."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1608
|
|
msgid ""
|
|
"Occurs when an operation result is subnormal (the exponent is too small). If "
|
|
"not trapped, returns the result unchanged."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1614
|
|
msgid "Numerical underflow with result rounded to zero."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1616
|
|
msgid ""
|
|
"Occurs when a subnormal result is pushed to zero by rounding. :class:"
|
|
"`Inexact` and :class:`Subnormal` are also signaled."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1622
|
|
msgid "Enable stricter semantics for mixing floats and Decimals."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1624
|
|
msgid ""
|
|
"If the signal is not trapped (default), mixing floats and Decimals is "
|
|
"permitted in the :class:`~decimal.Decimal` constructor, :meth:`~decimal."
|
|
"Context.create_decimal` and all comparison operators. Both conversion and "
|
|
"comparisons are exact. Any occurrence of a mixed operation is silently "
|
|
"recorded by setting :exc:`FloatOperation` in the context flags. Explicit "
|
|
"conversions with :meth:`~decimal.Decimal.from_float` or :meth:`~decimal."
|
|
"Context.create_decimal_from_float` do not set the flag."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1632
|
|
msgid ""
|
|
"Otherwise (the signal is trapped), only equality comparisons and explicit "
|
|
"conversions are silent. All other mixed operations raise :exc:"
|
|
"`FloatOperation`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1636
|
|
msgid "The following table summarizes the hierarchy of signals::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1657
|
|
msgid "Floating Point Notes"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1661
|
|
msgid "Mitigating round-off error with increased precision"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1663
|
|
msgid ""
|
|
"The use of decimal floating point eliminates decimal representation error "
|
|
"(making it possible to represent :const:`0.1` exactly); however, some "
|
|
"operations can still incur round-off error when non-zero digits exceed the "
|
|
"fixed precision."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1667
|
|
msgid ""
|
|
"The effects of round-off error can be amplified by the addition or "
|
|
"subtraction of nearly offsetting quantities resulting in loss of "
|
|
"significance. Knuth provides two instructive examples where rounded "
|
|
"floating point arithmetic with insufficient precision causes the breakdown "
|
|
"of the associative and distributive properties of addition:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1691
|
|
msgid ""
|
|
"The :mod:`decimal` module makes it possible to restore the identities by "
|
|
"expanding the precision sufficiently to avoid loss of significance:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1711
|
|
msgid "Special values"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1713
|
|
msgid ""
|
|
"The number system for the :mod:`decimal` module provides special values "
|
|
"including :const:`NaN`, :const:`sNaN`, :const:`-Infinity`, :const:"
|
|
"`Infinity`, and two zeros, :const:`+0` and :const:`-0`."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1717
|
|
msgid ""
|
|
"Infinities can be constructed directly with: ``Decimal('Infinity')``. Also, "
|
|
"they can arise from dividing by zero when the :exc:`DivisionByZero` signal "
|
|
"is not trapped. Likewise, when the :exc:`Overflow` signal is not trapped, "
|
|
"infinity can result from rounding beyond the limits of the largest "
|
|
"representable number."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1722
|
|
msgid ""
|
|
"The infinities are signed (affine) and can be used in arithmetic operations "
|
|
"where they get treated as very large, indeterminate numbers. For instance, "
|
|
"adding a constant to infinity gives another infinite result."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1726
|
|
msgid ""
|
|
"Some operations are indeterminate and return :const:`NaN`, or if the :exc:"
|
|
"`InvalidOperation` signal is trapped, raise an exception. For example, "
|
|
"``0/0`` returns :const:`NaN` which means \"not a number\". This variety of :"
|
|
"const:`NaN` is quiet and, once created, will flow through other computations "
|
|
"always resulting in another :const:`NaN`. This behavior can be useful for a "
|
|
"series of computations that occasionally have missing inputs --- it allows "
|
|
"the calculation to proceed while flagging specific results as invalid."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1734
|
|
msgid ""
|
|
"A variant is :const:`sNaN` which signals rather than remaining quiet after "
|
|
"every operation. This is a useful return value when an invalid result needs "
|
|
"to interrupt a calculation for special handling."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1738
|
|
msgid ""
|
|
"The behavior of Python's comparison operators can be a little surprising "
|
|
"where a :const:`NaN` is involved. A test for equality where one of the "
|
|
"operands is a quiet or signaling :const:`NaN` always returns :const:`False` "
|
|
"(even when doing ``Decimal('NaN')==Decimal('NaN')``), while a test for "
|
|
"inequality always returns :const:`True`. An attempt to compare two Decimals "
|
|
"using any of the ``<``, ``<=``, ``>`` or ``>=`` operators will raise the :"
|
|
"exc:`InvalidOperation` signal if either operand is a :const:`NaN`, and "
|
|
"return :const:`False` if this signal is not trapped. Note that the General "
|
|
"Decimal Arithmetic specification does not specify the behavior of direct "
|
|
"comparisons; these rules for comparisons involving a :const:`NaN` were taken "
|
|
"from the IEEE 854 standard (see Table 3 in section 5.7). To ensure strict "
|
|
"standards-compliance, use the :meth:`compare` and :meth:`compare-signal` "
|
|
"methods instead."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1751
|
|
msgid ""
|
|
"The signed zeros can result from calculations that underflow. They keep the "
|
|
"sign that would have resulted if the calculation had been carried out to "
|
|
"greater precision. Since their magnitude is zero, both positive and "
|
|
"negative zeros are treated as equal and their sign is informational."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1756
|
|
msgid ""
|
|
"In addition to the two signed zeros which are distinct yet equal, there are "
|
|
"various representations of zero with differing precisions yet equivalent in "
|
|
"value. This takes a bit of getting used to. For an eye accustomed to "
|
|
"normalized floating point representations, it is not immediately obvious "
|
|
"that the following calculation returns a value equal to zero:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1771
|
|
msgid "Working with threads"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1773
|
|
msgid ""
|
|
"The :func:`getcontext` function accesses a different :class:`Context` object "
|
|
"for each thread. Having separate thread contexts means that threads may "
|
|
"make changes (such as ``getcontext().prec=10``) without interfering with "
|
|
"other threads."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1777
|
|
msgid ""
|
|
"Likewise, the :func:`setcontext` function automatically assigns its target "
|
|
"to the current thread."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1780
|
|
msgid ""
|
|
"If :func:`setcontext` has not been called before :func:`getcontext`, then :"
|
|
"func:`getcontext` will automatically create a new context for use in the "
|
|
"current thread."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1784
|
|
msgid ""
|
|
"The new context is copied from a prototype context called *DefaultContext*. "
|
|
"To control the defaults so that each thread will use the same values "
|
|
"throughout the application, directly modify the *DefaultContext* object. "
|
|
"This should be done *before* any threads are started so that there won't be "
|
|
"a race condition between threads calling :func:`getcontext`. For example::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1809
|
|
msgid "Recipes"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1811
|
|
msgid ""
|
|
"Here are a few recipes that serve as utility functions and that demonstrate "
|
|
"ways to work with the :class:`Decimal` class::"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1966
|
|
msgid "Decimal FAQ"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1968
|
|
msgid ""
|
|
"Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way "
|
|
"to minimize typing when using the interactive interpreter?"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1971
|
|
msgid "A. Some users abbreviate the constructor to just a single letter:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1977
|
|
msgid ""
|
|
"Q. In a fixed-point application with two decimal places, some inputs have "
|
|
"many places and need to be rounded. Others are not supposed to have excess "
|
|
"digits and need to be validated. What methods should be used?"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1981
|
|
msgid ""
|
|
"A. The :meth:`quantize` method rounds to a fixed number of decimal places. "
|
|
"If the :const:`Inexact` trap is set, it is also useful for validation:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:1999
|
|
msgid ""
|
|
"Q. Once I have valid two place inputs, how do I maintain that invariant "
|
|
"throughout an application?"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2002
|
|
msgid ""
|
|
"A. Some operations like addition, subtraction, and multiplication by an "
|
|
"integer will automatically preserve fixed point. Others operations, like "
|
|
"division and non-integer multiplication, will change the number of decimal "
|
|
"places and need to be followed-up with a :meth:`quantize` step:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2020
|
|
msgid ""
|
|
"In developing fixed-point applications, it is convenient to define functions "
|
|
"to handle the :meth:`quantize` step:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2033
|
|
msgid ""
|
|
"Q. There are many ways to express the same value. The numbers :const:"
|
|
"`200`, :const:`200.000`, :const:`2E2`, and :const:`.02E+4` all have the same "
|
|
"value at various precisions. Is there a way to transform them to a single "
|
|
"recognizable canonical value?"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2038
|
|
msgid ""
|
|
"A. The :meth:`normalize` method maps all equivalent values to a single "
|
|
"representative:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2045
|
|
msgid ""
|
|
"Q. Some decimal values always print with exponential notation. Is there a "
|
|
"way to get a non-exponential representation?"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2048
|
|
msgid ""
|
|
"A. For some values, exponential notation is the only way to express the "
|
|
"number 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."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2053
|
|
msgid ""
|
|
"If an application does not care about tracking significance, it is easy to "
|
|
"remove the exponent and trailing zeroes, losing significance, but keeping "
|
|
"the value unchanged:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2063
|
|
msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2065
|
|
msgid ""
|
|
"A. Yes, any binary floating point number can be exactly expressed as a "
|
|
"Decimal though an exact conversion may take more precision than intuition "
|
|
"would suggest:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2074
|
|
msgid ""
|
|
"Q. Within a complex calculation, how can I make sure that I haven't gotten a "
|
|
"spurious result because of insufficient precision or rounding anomalies."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2077
|
|
msgid ""
|
|
"A. The decimal module makes it easy to test results. A best practice is to "
|
|
"re-run calculations using greater precision and with various rounding modes. "
|
|
"Widely differing results indicate insufficient precision, rounding mode "
|
|
"issues, ill-conditioned inputs, or a numerically unstable algorithm."
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2082
|
|
msgid ""
|
|
"Q. I noticed that context precision is applied to the results of operations "
|
|
"but not to the inputs. Is there anything to watch out for when mixing "
|
|
"values of different precisions?"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2086
|
|
msgid ""
|
|
"A. Yes. The principle is that all values are considered to be exact and so "
|
|
"is the arithmetic on those values. Only the results are rounded. The "
|
|
"advantage for inputs is that \"what you type is what you get\". A "
|
|
"disadvantage is that the results can look odd if you forget that the inputs "
|
|
"haven't been rounded:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2099
|
|
msgid ""
|
|
"The solution is either to increase precision or to force rounding of inputs "
|
|
"using the unary plus operation:"
|
|
msgstr ""
|
|
|
|
#: ../Doc/library/decimal.rst:2108
|
|
msgid ""
|
|
"Alternatively, inputs can be rounded upon creation using the :meth:`Context."
|
|
"create_decimal` method:"
|
|
msgstr ""
|