1
0
Fork 0
python-docs-fr/library/decimal.po

2203 lines
79 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-01 16:00+0200\n"
"PO-Revision-Date: 2018-10-07 18:55+0200\n"
"Last-Translator: \n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"
#: library/decimal.rst:2
msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic"
msgstr ":mod:`decimal` — Arithmétique décimale en virgule fixe et flottante"
#: library/decimal.rst:15
msgid "**Source code:** :source:`Lib/decimal.py`"
msgstr "**Code source :** :source:`Lib/decimal.py`"
#: library/decimal.rst:33
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 ""
"Le module :mod:`decimal` fournit une arithmétique en virgule flottante "
"rapide et produisant des arrondis mathématiquement corrects. Il possède "
"plusieurs avantages en comparaison au type :class:`float` :"
#: library/decimal.rst:37
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 ""
"Le module ``decimal`` « est basé sur un modèle en virgule flottante conçu "
"pour les humains, qui suit ce principe directeur : l'ordinateur doit fournir "
"un modèle de calcul qui fonctionne de la même manière que le calcul qu'on "
"apprend à l'école » -- extrait (traduit) de la spécification de "
"l'arithmétique décimale."
#: library/decimal.rst:42
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 ""
"Les nombres décimaux peuvent être représentés exactement en base décimale "
"flottante. En revanche, des nombres tels que :const:`1.1` ou :const:`1.2` "
"n'ont pas de représentation exacte en base binaire flottante. L'utilisateur "
"final ne s'attend typiquement pas à obtenir :const:`3.3000000000000003` "
"lorsqu'il saisit ``1.1 + 2.2``, ce qui se passe en arithmétique binaire à "
"virgule flottante."
#: library/decimal.rst:47
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 ""
"Ces inexactitudes ont des conséquences en arithmétique. En base décimale à "
"virgule flottante, ``0.1 + 0.1 + 0.1 - 0.3`` est exactement égal à zéro. En "
"virgule flottante binaire, l'ordinateur l'évalue à :const:"
"`5.5511151231257827e-017`. Bien que très proche de zéro, cette différence "
"induit des erreurs lors des tests d'égalité, erreurs qui peuvent "
"s'accumuler. Pour ces raisons ``decimal`` est le module utilisé pour des "
"applications comptables ayant des contraintes strictes de fiabilité."
#: library/decimal.rst:54
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 ""
"Le module ``decimal`` incorpore la notion de chiffres significatifs, tels "
"que ``1.30 + 1.20`` est égal à :const:`2.50`. Le dernier zéro n'est conservé "
"que pour respecter le nombre de chiffres significatifs. C'est également "
"l'affichage préféré pour représenter des sommes d'argent. Pour la "
"multiplication, l'approche « scolaire » utilise tout les chiffres présents "
"dans les facteurs. Par exemple, ``1.3 * 1.2`` donnerait :const:`1.56` tandis "
"que ``1.30 * 1.20`` donnerait :const:`1.5600`."
#: library/decimal.rst:61
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 ""
"Contrairement à l'arithmétique en virgule flottante binaire, le module "
"``decimal`` possède un paramètre de précision ajustable (par défaut à 28 "
"chiffres significatifs) qui peut être aussi élevée que nécessaire pour un "
"problème donné :"
#: library/decimal.rst:73
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 ""
"L'arithmétique binaire et décimale en virgule flottante sont implémentées "
"selon des standards publiés. Alors que le type ``float`` n'expose qu'une "
"faible portion de ses capacités, le module ``decimal`` expose tous les "
"composants nécessaires du standard. Lorsque nécessaire, le développeur a un "
"contrôle total de la gestion de signal et de l'arrondi. Cela inclut la "
"possibilité de forcer une arithmétique exacte en utilisant des exceptions "
"pour bloquer toute opération inexacte."
#: library/decimal.rst:80
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 ""
"Le module ``decimal`` a été conçu pour gérer « sans préjugé, à la fois une "
"arithmétique décimale non-arrondie (aussi appelée arithmétique en virgule "
"fixe) et à la fois une arithmétique en virgule flottante. » (extrait traduit "
"de la spécification de l'arithmétique décimale)."
#: library/decimal.rst:85
msgid ""
"The module design is centered around three concepts: the decimal number, "
"the context for arithmetic, and signals."
msgstr ""
"Le module est conçu autour de trois concepts : le nombre décimal, le "
"contexte arithmétique et les signaux."
#: library/decimal.rst:88
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 ""
"Un ``Decimal`` est immuable. Il a un signe, un coefficient, et un exposant. "
"Pour préserver le nombre de chiffres significatifs, les zéros en fin de "
"chaîne ne sont pas tronqués. Les décimaux incluent aussi des valeurs "
"spéciales telles que :const:`Infinity`, :const:`-Infinity`, et :const:`NaN`. "
"Le standard fait également la différence entre :const:`-0` et :const:`+0`."
#: library/decimal.rst:94
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 ""
"Le contexte de l'arithmétique est un environnement qui permet de configurer "
"une précision, une règle pour l'arrondi, des limites sur l'exposant, des "
"options indiquant le résultat des opérations et si les signaux (remontés "
"lors d'opérations illégales) sont traités comme des exceptions Python. Les "
"options d'arrondi incluent :const:`ROUND_CEILING`, :const:`ROUND_DOWN`, :"
"const:`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :"
"const:`ROUND_HALF_UP`, :const:`ROUND_UP`, et :const:`ROUND_05UP`."
#: library/decimal.rst:101
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 ""
"Les signaux sont des groupes de conditions exceptionnelles qui surviennent "
"durant le calcul. Selon les besoins de l'application, les signaux peuvent "
"être ignorés, considérés comme de l'information, ou bien traités comme des "
"exceptions. Les signaux dans le module ``decimal`` sont : :const:`Clamped`, :"
"const:`InvalidOperation`, :const:`DivisionByZero`, :const:`Inexact`, :const:"
"`Rounded`, :const:`Subnormal`, :const:`Overflow`, :const:`Underflow` et :"
"const:`FloatOperation`."
#: library/decimal.rst:108
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 ""
"Chaque signal est configurable indépendamment. Quand une opération illégale "
"survient, le signal est mis à ``1``, puis s'il est configuré pour, une "
"exception est levée. La mise à ``1`` est persistante, l'utilisateur doit "
"donc les remettre à zéro avant de commencer un calcul qu'il souhaite "
"surveiller."
#: library/decimal.rst:116
msgid ""
"IBM's General Decimal Arithmetic Specification, `The General Decimal "
"Arithmetic Specification <http://speleotrove.com/decimal/decarith.html>`_."
msgstr ""
"La spécification d'IBM sur l'arithmétique décimale : `The General Decimal "
"Arithmetic Specification <http://speleotrove.com/decimal/decarith.html>`_."
#: library/decimal.rst:125
msgid "Quick-start Tutorial"
msgstr "Introduction pratique"
#: library/decimal.rst:127
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 ""
"Commençons par importer le module, regarder le contexte actuel avec :func:"
"`getcontext`, et si nécessaire configurer la précision, l'arrondi, et la "
"gestion des signaux ::"
#: library/decimal.rst:139
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 ""
"Les instances de ``Decimal`` peuvent être construites avec des ``int``, des "
"``str``, des ``floats`` ou des ``tuples``. La construction depuis un entier "
"ou un ``float`` effectue la conversion exacte de cet entier ou de ce "
"``float``. Les nombres décimaux incluent des valeurs spéciales telles que :"
"const:`NaN` qui signifie en anglais « *Not a number* », en français « pas un "
"nombre », des :const:`Infinity` positifs ou négatifs et :const:`-0` ::"
#: library/decimal.rst:163
msgid ""
"If the :exc:`FloatOperation` signal is trapped, accidental mixing of "
"decimals and floats in constructors or ordering comparisons raises an "
"exception::"
msgstr ""
"Si un signal :exc:`FloatOperation` est détecté, un mélange accidentel "
"d'objets ``Decimal`` et de ``float`` dans les constructeurs ou des "
"opérations de comparaisons, une exception est levée ::"
#: library/decimal.rst:182
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 ""
"Le nombre de chiffres significatifs d'un nouvel objet ``Decimal`` est "
"déterminé entièrement par le nombre de chiffres saisis. La précision et les "
"règles d'arrondis n'interviennent que lors d'opérations arithmétiques."
#: library/decimal.rst:199
msgid ""
"If the internal limits of the C version are exceeded, constructing a decimal "
"raises :class:`InvalidOperation`::"
msgstr ""
"Si les limites internes de la version en C sont dépassées, la construction "
"d'un objet décimal lève l'exception :class:`InvalidOperation` ::"
#: library/decimal.rst:209
msgid ""
"Decimals interact well with much of the rest of Python. Here is a small "
"decimal floating point flying circus:"
msgstr ""
"Les objets ``Decimal`` interagissent très bien avec le reste de Python. "
"Voici quelques exemple d'opérations avec des décimaux :"
#: library/decimal.rst:241
msgid "And some mathematical functions are also available to Decimal:"
msgstr ""
"Et certaines fonctions mathématiques sont également disponibles sur des "
"instances de ``Decimal`` :"
#: library/decimal.rst:253
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 ""
"La méthode :meth:`quantize` arrondit un nombre à un exposant fixe. Cette "
"méthode est utile pour des applications monétaires qui arrondissent souvent "
"un résultat à un nombre de chiffres significatifs exact :"
#: library/decimal.rst:262
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 ""
"Comme montré plus haut, la fonction :func:`getcontext` accède au contexte "
"actuel et permet de modifier les paramètres. Cette approche répond aux "
"besoins de la plupart des applications."
#: library/decimal.rst:266
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 ""
"Pour un travail plus avancé, il peut être utile de créer des contextes "
"alternatifs en utilisant le constructeur de ``Context``. Pour activer cet "
"objet ``Context``, utilisez la fonction :func:`setcontext`."
#: library/decimal.rst:270
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 ""
"En accord avec le standard, le module :mod:`decimal` fournit des objets "
"Context standards, :const:`BasicContext` et :const:`ExtendedContext`. Le "
"premier est particulièrement utile pour le débogage car beaucoup des pièges "
"sont activés dans cet objet."
#: library/decimal.rst:299
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 ""
"Les objets ``Context`` ont aussi des options pour détecter des opérations "
"illégales lors des calculs. Ces options restent activées jusqu'à ce qu'elles "
"soit remises à zéro de manière explicite. Il convient donc de remettre à "
"zéro ces options avant chaque inspection de chaque calcul, avec la méthode :"
"meth:`clear_flags`. ::"
#: library/decimal.rst:312
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 ""
"Les options montrent que l'approximation de :const:`Pi` par une fraction a "
"été arrondie (les chiffres au delà de la précision spécifiée par l'objet "
"Context ont été tronqués) et que le résultat est différent (certains des "
"chiffres tronqués étaient différents de zéro)."
#: library/decimal.rst:316
msgid ""
"Individual traps are set using the dictionary in the :attr:`traps` field of "
"a context:"
msgstr ""
"L'activation des pièges se fait en utilisant un dictionnaire dans "
"l'attribut :attr:`traps` de l'objet Context :"
#: library/decimal.rst:331
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 ""
"La plupart des applications n'ajustent l'objet ``Context`` qu'une seule "
"fois, au démarrage. Et, dans beaucoup d'applications, les données sont "
"convertie une fois pour toutes en :class:`Decimal`. Une fois le ``Context`` "
"initialisé, et les objets ``Decimal`` créés, l'essentiel du programme "
"manipule la donnée de la même manière qu'avec les autres types numériques "
"Python."
#: library/decimal.rst:343
msgid "Decimal objects"
msgstr "Les objets Decimal"
#: library/decimal.rst:348
msgid "Construct a new :class:`Decimal` object based from *value*."
msgstr "Construire un nouvel objet :class:`Decimal` à partir de *value*."
#: library/decimal.rst:350
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 ""
"*value* peut être un entier, une chaîne de caractères, un tuple, :class:"
"`float`, ou une autre instance de :class:`Decimal`. Si *value* n'est pas "
"fourni, le constructeur renvoie ``Decimal('0')``. Si *value* est une chaîne "
"de caractère, elle doit correspondre à la syntaxe décimale en dehors des "
"espaces de début et de fin, ou des tirets bas, qui sont enlevés ::"
#: library/decimal.rst:366
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 ""
"Les chiffres codés en Unicode sont aussi autorisés, là ou ``digit`` "
"apparaît. Cela inclut des chiffres décimaux venant d'autres alphabets (par "
"exemple les chiffres indo-arabes ou Devanagari) ainsi que les chiffres de "
"pleine largeur ``'\\uff10'`` jusqu'à ``'\\uff19'``."
#: library/decimal.rst:371
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 ""
"Si *value* est un :class:`tuple`, il doit avoir 3 éléments, le signe (:const:"
"`0` pour positif ou :const:`1` pour négatif), un :class:`tuple` de chiffres, "
"et un entier représentant l'exposant. Par exemple, ``Decimal((0, (1, 4, 1, "
"4), -3))`` construit l'objet ``Decimal('1.414')``."
#: library/decimal.rst:376
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 ""
"Si *value* est un :class:`float`, la valeur en binaire flottant est "
"convertie exactement à son équivalent décimal. Cette conversion peut parfois "
"nécessiter 53 chiffres significatifs ou plus. Par exemple, "
"``Decimal(float('1.1'))`` devient "
"``Decimal('1.100000000000000088817841970012523233890533447265625')``."
#: library/decimal.rst:382
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 ""
"La précision spécifiée dans Context n'affecte pas le nombre de chiffres "
"stockés. Cette valeur est déterminée exclusivement par le nombre de chiffres "
"dans *value*. Par exemple, ``Decimal('3.00000')`` enregistre les 5 zéros "
"même si la précision du contexte est de 3."
#: library/decimal.rst:387
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 ""
"L'objectif de l'argument *context* est de déterminer ce que Python doit "
"faire si *value* est une chaîne avec un mauvais format. Si l'option :const:"
"`InvalidOperation` est activée, une exception est levée, sinon le "
"constructeur renvoie un objet ``Decimal`` avec la valeur :const:`NaN`."
#: library/decimal.rst:392
msgid "Once constructed, :class:`Decimal` objects are immutable."
msgstr "Une fois construit, les objets :class:`Decimal` sont immuables."
#: library/decimal.rst:394
msgid ""
"The argument to the constructor is now permitted to be a :class:`float` "
"instance."
msgstr ""
"L'argument du constructeur peut désormais être un objet :class:`float`."
#: library/decimal.rst:398
msgid ""
":class:`float` arguments raise an exception if the :exc:`FloatOperation` "
"trap is set. By default the trap is off."
msgstr ""
"Un argument :class:`float` lève une exception si l'option :exc:"
"`FloatOperation` est activé. Par défaut l'option ne l'est pas."
#: library/decimal.rst:402
msgid ""
"Underscores are allowed for grouping, as with integral and floating-point "
"literals in code."
msgstr ""
"Les tirets bas sont autorisés pour regrouper, tout comme pour l'arithmétique "
"en virgule fixe et flottante."
#: library/decimal.rst:406
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 ""
"Les objets ``Decimal`` partagent beaucoup de propriétés avec les autres "
"types numériques natifs tels que :class:`float` et :class:`int`. Toutes les "
"opérations mathématiques et méthodes sont conservées. De même les objets "
"``Decimal`` peuvent être copiés, sérialisés via le module ``pickle``, "
"affichés, utilisés comme clé de dictionnaire, éléments d'ensembles, "
"comparés, classés, et convertis vers un autre type (tel que :class:`float` "
"ou :class:`int`)."
#: library/decimal.rst:413
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 ""
"Il existe quelques différences mineures entre l'arithmétique entre les "
"objets décimaux et l'arithmétique avec les entiers et les ``float``. Quand "
"l'opérateur modulo ``%`` est appliqué sur des objets décimaux, le signe du "
"résultat est le signe du *dividend* plutôt que le signe du diviseur ::"
#: library/decimal.rst:423
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 ""
"L'opérateur division entière, ``//`` se comporte de la même manière, "
"retournant la partie entière du quotient, plutôt que son arrondi, de manière "
"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y`` ::"
#: library/decimal.rst:432
msgid ""
"The ``%`` and ``//`` operators implement the ``remainder`` and ``divide-"
"integer`` operations (respectively) as described in the specification."
msgstr ""
"Les opérateurs ``//`` et ``%`` implémentent la division entière et le reste "
"(ou modulo), respectivement, tel que décrit dans la spécification."
#: library/decimal.rst:436
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 ""
"Les objets ``Decimal`` ne peuvent généralement pas être combinés avec des "
"``float`` ou des objets :class:`fractions.Fraction` lors d'opérations "
"arithmétiques : tout addition entre un :class:`Decimal` avec un :class:"
"`float`, par exemple, lève une exception :exc:`TypeError`. Cependant, il est "
"possible d'utiliser les opérateurs de comparaison entre instances de :class:"
"`Decimal` avec les autres types numériques. Cela évite d'avoir des résultats "
"absurdes lors des tests d'égalité entre différents types."
#: library/decimal.rst:444
msgid ""
"Mixed-type comparisons between :class:`Decimal` instances and other numeric "
"types are now fully supported."
msgstr ""
"Les comparaisons inter-types entre :class:`Decimal` et les autres types "
"numériques sont désormais intégralement gérés."
#: library/decimal.rst:448
msgid ""
"In addition to the standard numeric properties, decimal floating point "
"objects also have a number of specialized methods:"
msgstr ""
#: library/decimal.rst:454
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 ""
#: library/decimal.rst:461
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 ""
#: library/decimal.rst:468
msgid ""
"The conversion is exact. Raise OverflowError on infinities and ValueError "
"on NaNs."
msgstr ""
"La conversion est exacte. Lève une ``OverflowError`` sur l'infini et "
"``ValueError`` sur les ``Nan``'s."
#: library/decimal.rst:475
msgid ""
"Return a :term:`named tuple` representation of the number: "
"``DecimalTuple(sign, digits, exponent)``."
msgstr ""
#: library/decimal.rst:481
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 ""
#: library/decimal.rst:487
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 ""
#: library/decimal.rst:498
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 ""
#: library/decimal.rst:504
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 ""
#: library/decimal.rst:513
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 ""
#: library/decimal.rst:531 library/decimal.rst:834
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 ""
#: library/decimal.rst:526
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 ""
#: library/decimal.rst:537
msgid ""
"Just returns self, this method is only to comply with the Decimal "
"Specification."
msgstr ""
#: library/decimal.rst:542
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 ""
#: library/decimal.rst:548
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 ""
#: library/decimal.rst:553
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 ""
#: library/decimal.rst:565
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 ""
#: library/decimal.rst:576
msgid "Classmethod that converts a float to a decimal number, exactly."
msgstr ""
#: library/decimal.rst:578
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 ""
#: library/decimal.rst:584
msgid ""
"From Python 3.2 onwards, a :class:`Decimal` instance can also be constructed "
"directly from a :class:`float`."
msgstr ""
#: library/decimal.rst:602
msgid ""
"Fused multiply-add. Return self*other+third with no rounding of the "
"intermediate product self*other."
msgstr ""
#: library/decimal.rst:610
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 ""
#: library/decimal.rst:616
msgid ""
"Return :const:`True` if the argument is a finite number, and :const:`False` "
"if the argument is an infinity or a NaN."
msgstr ""
#: library/decimal.rst:621
msgid ""
"Return :const:`True` if the argument is either positive or negative infinity "
"and :const:`False` otherwise."
msgstr ""
#: library/decimal.rst:626
msgid ""
"Return :const:`True` if the argument is a (quiet or signaling) NaN and :"
"const:`False` otherwise."
msgstr ""
#: library/decimal.rst:631
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 ""
#: library/decimal.rst:636
msgid ""
"Return :const:`True` if the argument is a quiet NaN, and :const:`False` "
"otherwise."
msgstr ""
#: library/decimal.rst:641
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 ""
#: library/decimal.rst:646
msgid ""
"Return :const:`True` if the argument is a signaling NaN and :const:`False` "
"otherwise."
msgstr ""
#: library/decimal.rst:651
msgid ""
"Return :const:`True` if the argument is subnormal, and :const:`False` "
"otherwise."
msgstr ""
#: library/decimal.rst:656
msgid ""
"Return :const:`True` if the argument is a (positive or negative) zero and :"
"const:`False` otherwise."
msgstr ""
#: library/decimal.rst:661
msgid ""
"Return the natural (base e) logarithm of the operand. The result is "
"correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode."
msgstr ""
#: library/decimal.rst:666
msgid ""
"Return the base ten logarithm of the operand. The result is correctly "
"rounded using the :const:`ROUND_HALF_EVEN` rounding mode."
msgstr ""
#: library/decimal.rst:671
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 ""
#: library/decimal.rst:679
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 ""
#: library/decimal.rst:685
msgid ""
":meth:`logical_invert` is a logical operation. The result is the digit-wise "
"inversion of the operand."
msgstr ""
#: library/decimal.rst:690
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 ""
#: library/decimal.rst:696
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 ""
#: library/decimal.rst:702
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 ""
#: library/decimal.rst:709
msgid ""
"Similar to the :meth:`.max` method, but the comparison is done using the "
"absolute values of the operands."
msgstr ""
#: library/decimal.rst:714
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 ""
#: library/decimal.rst:721
msgid ""
"Similar to the :meth:`.min` method, but the comparison is done using the "
"absolute values of the operands."
msgstr ""
#: library/decimal.rst:726
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 ""
#: library/decimal.rst:732
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 ""
#: library/decimal.rst:738
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 ""
#: library/decimal.rst:745
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 ""
#: library/decimal.rst:754
msgid ""
"Return a string describing the *class* of the operand. The returned value "
"is one of the following ten strings."
msgstr ""
#: library/decimal.rst:757
msgid "``\"-Infinity\"``, indicating that the operand is negative infinity."
msgstr ""
#: library/decimal.rst:758
msgid ""
"``\"-Normal\"``, indicating that the operand is a negative normal number."
msgstr ""
#: library/decimal.rst:759
msgid ""
"``\"-Subnormal\"``, indicating that the operand is negative and subnormal."
msgstr ""
#: library/decimal.rst:760
msgid "``\"-Zero\"``, indicating that the operand is a negative zero."
msgstr ""
#: library/decimal.rst:761
msgid "``\"+Zero\"``, indicating that the operand is a positive zero."
msgstr ""
#: library/decimal.rst:762
msgid ""
"``\"+Subnormal\"``, indicating that the operand is positive and subnormal."
msgstr ""
#: library/decimal.rst:763
msgid ""
"``\"+Normal\"``, indicating that the operand is a positive normal number."
msgstr ""
#: library/decimal.rst:764
msgid "``\"+Infinity\"``, indicating that the operand is positive infinity."
msgstr ""
#: library/decimal.rst:765
msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)."
msgstr ""
#: library/decimal.rst:766
msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN."
msgstr ""
#: library/decimal.rst:770
msgid ""
"Return a value equal to the first operand after rounding and having the "
"exponent of the second operand."
msgstr ""
#: library/decimal.rst:776
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 ""
#: library/decimal.rst:782
msgid ""
"Also unlike other operations, quantize never signals Underflow, even if the "
"result is subnormal and inexact."
msgstr ""
#: library/decimal.rst:785
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 ""
#: library/decimal.rst:791
msgid ""
"An error is returned whenever the resulting exponent is greater than :attr:"
"`Emax` or less than :attr:`Etiny`."
msgstr ""
#: library/decimal.rst:796
msgid ""
"Return ``Decimal(10)``, the radix (base) in which the :class:`Decimal` class "
"does all its arithmetic. Included for compatibility with the specification."
msgstr ""
#: library/decimal.rst:802
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 ""
#: library/decimal.rst:809
msgid "If the result is zero then its sign will be the sign of *self*."
msgstr ""
#: library/decimal.rst:820
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 ""
#: library/decimal.rst:831
msgid ""
"Test whether self and other have the same exponent or whether both are :"
"const:`NaN`."
msgstr ""
#: library/decimal.rst:840
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 ""
#: library/decimal.rst:846
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 ""
#: library/decimal.rst:856
msgid "Return the square root of the argument to full precision."
msgstr ""
#: library/decimal.rst:1440
msgid ""
"Convert to a string, using engineering notation if an exponent is needed."
msgstr ""
#: library/decimal.rst:1442
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 ""
#: library/decimal.rst:867
msgid ""
"For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``."
msgstr ""
#: library/decimal.rst:871
msgid ""
"Identical to the :meth:`to_integral_value` method. The ``to_integral`` name "
"has been kept for compatibility with older versions."
msgstr ""
#: library/decimal.rst:876
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 ""
#: library/decimal.rst:884
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 ""
#: library/decimal.rst:892
msgid "Logical operands"
msgstr ""
#: library/decimal.rst:894
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 ""
#: library/decimal.rst:906
msgid "Context objects"
msgstr ""
#: library/decimal.rst:908
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 ""
#: library/decimal.rst:912
msgid ""
"Each thread has its own current context which is accessed or changed using "
"the :func:`getcontext` and :func:`setcontext` functions:"
msgstr ""
#: library/decimal.rst:918
msgid "Return the current context for the active thread."
msgstr ""
#: library/decimal.rst:923
msgid "Set the current context for the active thread to *c*."
msgstr ""
#: library/decimal.rst:925
msgid ""
"You can also use the :keyword:`with` statement and the :func:`localcontext` "
"function to temporarily change the active context."
msgstr ""
#: library/decimal.rst:930
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 ""
#: library/decimal.rst:935
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 ""
#: library/decimal.rst:945
msgid ""
"New contexts can also be created using the :class:`Context` constructor "
"described below. In addition, the module provides three pre-made contexts:"
msgstr ""
#: library/decimal.rst:951
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 ""
#: library/decimal.rst:957
msgid ""
"Because many of the traps are enabled, this context is useful for debugging."
msgstr ""
#: library/decimal.rst:962
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 ""
#: library/decimal.rst:967
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 ""
#: library/decimal.rst:975
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 ""
#: library/decimal.rst:979
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 ""
#: library/decimal.rst:984
msgid ""
"In single threaded environments, it is preferable to not use this context at "
"all. Instead, simply create contexts explicitly as described below."
msgstr ""
#: library/decimal.rst:987
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 ""
#: library/decimal.rst:992
msgid ""
"In addition to the three supplied contexts, new contexts can be created with "
"the :class:`Context` constructor."
msgstr ""
#: library/decimal.rst:998
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 ""
#: library/decimal.rst:1002
msgid ""
"*prec* is an integer in the range [:const:`1`, :const:`MAX_PREC`] that sets "
"the precision for arithmetic operations in the context."
msgstr ""
#: library/decimal.rst:1005
msgid ""
"The *rounding* option is one of the constants listed in the section "
"`Rounding Modes`_."
msgstr ""
#: library/decimal.rst:1008
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 ""
#: library/decimal.rst:1011
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 ""
#: library/decimal.rst:1015
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 ""
#: library/decimal.rst:1019
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 ""
#: library/decimal.rst:1034
msgid ""
"A *clamp* value of :const:`1` allows compatibility with the fixed-width "
"decimal interchange formats specified in IEEE 754."
msgstr ""
#: library/decimal.rst:1037
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 ""
#: library/decimal.rst:1050
msgid "Resets all of the flags to :const:`0`."
msgstr ""
#: library/decimal.rst:1054
msgid "Resets all of the traps to :const:`0`."
msgstr ""
#: library/decimal.rst:1060
msgid "Return a duplicate of the context."
msgstr ""
#: library/decimal.rst:1064
msgid "Return a copy of the Decimal instance num."
msgstr ""
#: library/decimal.rst:1068
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 ""
#: library/decimal.rst:1072
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 ""
#: library/decimal.rst:1086
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 ""
#: library/decimal.rst:1092
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 ""
#: library/decimal.rst:1112
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 ""
#: library/decimal.rst:1118
msgid "Returns a value equal to ``Emax - prec + 1``."
msgstr ""
#: library/decimal.rst:1120
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 ""
#: library/decimal.rst:1130
msgid "Returns the absolute value of *x*."
msgstr "Renvoie la valeur absolue de *x*."
#: library/decimal.rst:1135
msgid "Return the sum of *x* and *y*."
msgstr ""
#: library/decimal.rst:1140
msgid "Returns the same Decimal object *x*."
msgstr ""
#: library/decimal.rst:1145
msgid "Compares *x* and *y* numerically."
msgstr ""
#: library/decimal.rst:1150
msgid "Compares the values of the two operands numerically."
msgstr ""
#: library/decimal.rst:1155
msgid "Compares two operands using their abstract representation."
msgstr ""
#: library/decimal.rst:1160
msgid ""
"Compares two operands using their abstract representation, ignoring sign."
msgstr ""
#: library/decimal.rst:1165
msgid "Returns a copy of *x* with the sign set to 0."
msgstr ""
#: library/decimal.rst:1170
msgid "Returns a copy of *x* with the sign inverted."
msgstr ""
#: library/decimal.rst:1175
msgid "Copies the sign from *y* to *x*."
msgstr ""
#: library/decimal.rst:1180
msgid "Return *x* divided by *y*."
msgstr ""
#: library/decimal.rst:1185
msgid "Return *x* divided by *y*, truncated to an integer."
msgstr ""
#: library/decimal.rst:1190
msgid "Divides two numbers and returns the integer part of the result."
msgstr ""
#: library/decimal.rst:1195
msgid "Returns `e ** x`."
msgstr ""
#: library/decimal.rst:1200
msgid "Returns *x* multiplied by *y*, plus *z*."
msgstr ""
#: library/decimal.rst:1205
msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1210
msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1215
msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1220
msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1225
msgid ""
"Returns ``True`` if *x* is a normal number; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1230
msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1235
msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1240
msgid ""
"Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1245
msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1250
msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``."
msgstr ""
#: library/decimal.rst:1255
msgid "Returns the natural (base e) logarithm of *x*."
msgstr ""
#: library/decimal.rst:1260
msgid "Returns the base 10 logarithm of *x*."
msgstr ""
#: library/decimal.rst:1265
msgid "Returns the exponent of the magnitude of the operand's MSD."
msgstr ""
#: library/decimal.rst:1270
msgid "Applies the logical operation *and* between each operand's digits."
msgstr ""
#: library/decimal.rst:1275
msgid "Invert all the digits in *x*."
msgstr ""
#: library/decimal.rst:1280
msgid "Applies the logical operation *or* between each operand's digits."
msgstr ""
#: library/decimal.rst:1285
msgid "Applies the logical operation *xor* between each operand's digits."
msgstr ""
#: library/decimal.rst:1290
msgid "Compares two values numerically and returns the maximum."
msgstr ""
#: library/decimal.rst:1305
msgid "Compares the values numerically with their sign ignored."
msgstr ""
#: library/decimal.rst:1300
msgid "Compares two values numerically and returns the minimum."
msgstr ""
#: library/decimal.rst:1310
msgid "Minus corresponds to the unary prefix minus operator in Python."
msgstr ""
#: library/decimal.rst:1315
msgid "Return the product of *x* and *y*."
msgstr ""
#: library/decimal.rst:1320
msgid "Returns the largest representable number smaller than *x*."
msgstr ""
#: library/decimal.rst:1325
msgid "Returns the smallest representable number larger than *x*."
msgstr ""
#: library/decimal.rst:1330
msgid "Returns the number closest to *x*, in direction towards *y*."
msgstr ""
#: library/decimal.rst:1335
msgid "Reduces *x* to its simplest form."
msgstr ""
#: library/decimal.rst:1340
msgid "Returns an indication of the class of *x*."
msgstr ""
#: library/decimal.rst:1345
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 ""
#: library/decimal.rst:1352
msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given."
msgstr ""
#: library/decimal.rst:1354
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 ""
#: library/decimal.rst:1360
msgid ""
"``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if "
"``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``."
msgstr ""
#: library/decimal.rst:1363
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 ""
#: library/decimal.rst:1368
msgid ""
"With three arguments, compute ``(x**y) % modulo``. For the three argument "
"form, the following restrictions on the arguments hold:"
msgstr ""
#: library/decimal.rst:1371
msgid "all three arguments must be integral"
msgstr ""
#: library/decimal.rst:1372
msgid "``y`` must be nonnegative"
msgstr ""
#: library/decimal.rst:1373
msgid "at least one of ``x`` or ``y`` must be nonzero"
msgstr ""
#: library/decimal.rst:1374
msgid "``modulo`` must be nonzero and have at most 'precision' digits"
msgstr ""
#: library/decimal.rst:1376
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 ""
#: library/decimal.rst:1386
msgid "Returns a value equal to *x* (rounded), having the exponent of *y*."
msgstr ""
#: library/decimal.rst:1391
msgid "Just returns 10, as this is Decimal, :)"
msgstr ""
#: library/decimal.rst:1396
msgid "Returns the remainder from integer division."
msgstr ""
#: library/decimal.rst:1398
msgid ""
"The sign of the result, if non-zero, is the same as that of the original "
"dividend."
msgstr ""
#: library/decimal.rst:1404
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 ""
#: library/decimal.rst:1410
msgid "Returns a rotated copy of *x*, *y* times."
msgstr ""
#: library/decimal.rst:1415
msgid "Returns ``True`` if the two operands have the same exponent."
msgstr ""
#: library/decimal.rst:1420
msgid "Returns the first operand after adding the second value its exp."
msgstr ""
#: library/decimal.rst:1425
msgid "Returns a shifted copy of *x*, *y* times."
msgstr ""
#: library/decimal.rst:1430
msgid "Square root of a non-negative number to context precision."
msgstr ""
#: library/decimal.rst:1435
msgid "Return the difference between *x* and *y*."
msgstr ""
#: library/decimal.rst:1449
msgid "Rounds to an integer."
msgstr ""
#: library/decimal.rst:1454
msgid "Converts a number to a string using scientific notation."
msgstr ""
#: library/decimal.rst:1461
msgid "Constants"
msgstr "Constantes"
#: library/decimal.rst:1463
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 ""
#: library/decimal.rst:1467
msgid "32-bit"
msgstr "32-bit"
#: library/decimal.rst:1467
msgid "64-bit"
msgstr "64-bit"
#: library/decimal.rst:1471
msgid ":const:`425000000`"
msgstr ":const:`425000000`"
#: library/decimal.rst:1471
msgid ":const:`999999999999999999`"
msgstr ":const:`999999999999999999`"
#: library/decimal.rst:1473
msgid ":const:`-425000000`"
msgstr ":const:`-425000000`"
#: library/decimal.rst:1473
msgid ":const:`-999999999999999999`"
msgstr ":const:`-999999999999999999`"
#: library/decimal.rst:1475
msgid ":const:`-849999999`"
msgstr ":const:`-849999999`"
#: library/decimal.rst:1475
msgid ":const:`-1999999999999999997`"
msgstr ":const:`-1999999999999999997`"
#: library/decimal.rst:1481
msgid ""
"The value is ``True``. Deprecated, because Python now always has threads."
msgstr ""
#: library/decimal.rst:1487
msgid ""
"The default value is ``True``. If Python is compiled ``--without-decimal-"
"contextvar``, the C version uses a thread-local rather than a coroutine-"
"local context and the value is ``False``. This is slightly faster in some "
"nested context scenarios."
msgstr ""
#: library/decimal.rst:1491
msgid "backported to 3.7 and 3.8."
msgstr ""
#: library/decimal.rst:1495
msgid "Rounding modes"
msgstr ""
#: library/decimal.rst:1499
msgid "Round towards :const:`Infinity`."
msgstr ""
#: library/decimal.rst:1503
msgid "Round towards zero."
msgstr ""
#: library/decimal.rst:1507
msgid "Round towards :const:`-Infinity`."
msgstr ""
#: library/decimal.rst:1511
msgid "Round to nearest with ties going towards zero."
msgstr ""
#: library/decimal.rst:1515
msgid "Round to nearest with ties going to nearest even integer."
msgstr ""
#: library/decimal.rst:1519
msgid "Round to nearest with ties going away from zero."
msgstr ""
#: library/decimal.rst:1523
msgid "Round away from zero."
msgstr ""
#: library/decimal.rst:1527
msgid ""
"Round away from zero if last digit after rounding towards zero would have "
"been 0 or 5; otherwise round towards zero."
msgstr ""
#: library/decimal.rst:1534
msgid "Signals"
msgstr ""
#: library/decimal.rst:1536
msgid ""
"Signals represent conditions that arise during computation. Each corresponds "
"to one context flag and one context trap enabler."
msgstr ""
#: library/decimal.rst:1539
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 ""
#: library/decimal.rst:1544
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 ""
#: library/decimal.rst:1552
msgid "Altered an exponent to fit representation constraints."
msgstr ""
#: library/decimal.rst:1554
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 ""
#: library/decimal.rst:1561
msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`."
msgstr ""
#: library/decimal.rst:1566
msgid "Signals the division of a non-infinite number by zero."
msgstr ""
#: library/decimal.rst:1568
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 ""
#: library/decimal.rst:1575
msgid "Indicates that rounding occurred and the result is not exact."
msgstr ""
#: library/decimal.rst:1577
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 ""
#: library/decimal.rst:1584
msgid "An invalid operation was performed."
msgstr ""
#: library/decimal.rst:1586
msgid ""
"Indicates that an operation was requested that does not make sense. If not "
"trapped, returns :const:`NaN`. Possible causes include::"
msgstr ""
#: library/decimal.rst:1602
msgid "Numerical overflow."
msgstr ""
#: library/decimal.rst:1604
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 ""
#: library/decimal.rst:1613
msgid "Rounding occurred though possibly no information was lost."
msgstr ""
#: library/decimal.rst:1615
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 ""
#: library/decimal.rst:1623
msgid "Exponent was lower than :attr:`Emin` prior to rounding."
msgstr ""
#: library/decimal.rst:1625
msgid ""
"Occurs when an operation result is subnormal (the exponent is too small). If "
"not trapped, returns the result unchanged."
msgstr ""
#: library/decimal.rst:1631
msgid "Numerical underflow with result rounded to zero."
msgstr ""
#: library/decimal.rst:1633
msgid ""
"Occurs when a subnormal result is pushed to zero by rounding. :class:"
"`Inexact` and :class:`Subnormal` are also signaled."
msgstr ""
#: library/decimal.rst:1639
msgid "Enable stricter semantics for mixing floats and Decimals."
msgstr ""
#: library/decimal.rst:1641
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 ""
#: library/decimal.rst:1649
msgid ""
"Otherwise (the signal is trapped), only equality comparisons and explicit "
"conversions are silent. All other mixed operations raise :exc:"
"`FloatOperation`."
msgstr ""
#: library/decimal.rst:1653
msgid "The following table summarizes the hierarchy of signals::"
msgstr ""
#: library/decimal.rst:1674
msgid "Floating Point Notes"
msgstr ""
#: library/decimal.rst:1678
msgid "Mitigating round-off error with increased precision"
msgstr ""
#: library/decimal.rst:1680
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 ""
#: library/decimal.rst:1684
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 ""
#: library/decimal.rst:1708
msgid ""
"The :mod:`decimal` module makes it possible to restore the identities by "
"expanding the precision sufficiently to avoid loss of significance:"
msgstr ""
#: library/decimal.rst:1728
msgid "Special values"
msgstr ""
#: library/decimal.rst:1730
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 ""
#: library/decimal.rst:1734
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 ""
#: library/decimal.rst:1739
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 ""
#: library/decimal.rst:1743
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 ""
#: library/decimal.rst:1751
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 ""
#: library/decimal.rst:1755
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 ""
#: library/decimal.rst:1768
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 ""
#: library/decimal.rst:1773
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 ""
#: library/decimal.rst:1788
msgid "Working with threads"
msgstr ""
#: library/decimal.rst:1790
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 ""
#: library/decimal.rst:1794
msgid ""
"Likewise, the :func:`setcontext` function automatically assigns its target "
"to the current thread."
msgstr ""
#: library/decimal.rst:1797
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 ""
#: library/decimal.rst:1801
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 ""
#: library/decimal.rst:1826
msgid "Recipes"
msgstr "Cas pratiques"
#: library/decimal.rst:1828
msgid ""
"Here are a few recipes that serve as utility functions and that demonstrate "
"ways to work with the :class:`Decimal` class::"
msgstr ""
#: library/decimal.rst:1983
msgid "Decimal FAQ"
msgstr "FAQ *decimal*"
#: library/decimal.rst:1985
msgid ""
"Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way "
"to minimize typing when using the interactive interpreter?"
msgstr ""
"Q. C'est fastidieux de taper ``decimal.Decimal('1234.5')``. Y a-t-il un "
"moyen de réduire la frappe quand on utilise l'interpréteur interactif ?"
#: library/decimal.rst:1988
msgid "A. Some users abbreviate the constructor to just a single letter:"
msgstr ""
"R. Certains utilisateurs abrègent le constructeur en une seule lettre :"
#: library/decimal.rst:1994
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 ""
#: library/decimal.rst:1998
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 ""
#: library/decimal.rst:2016
msgid ""
"Q. Once I have valid two place inputs, how do I maintain that invariant "
"throughout an application?"
msgstr ""
#: library/decimal.rst:2019
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 ""
#: library/decimal.rst:2037
msgid ""
"In developing fixed-point applications, it is convenient to define functions "
"to handle the :meth:`quantize` step:"
msgstr ""
#: library/decimal.rst:2050
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 ""
#: library/decimal.rst:2055
msgid ""
"A. The :meth:`normalize` method maps all equivalent values to a single "
"representative:"
msgstr ""
#: library/decimal.rst:2062
msgid ""
"Q. Some decimal values always print with exponential notation. Is there a "
"way to get a non-exponential representation?"
msgstr ""
#: library/decimal.rst:2065
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 ""
#: library/decimal.rst:2070
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 ""
#: library/decimal.rst:2080
msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?"
msgstr ""
#: library/decimal.rst:2082
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 ""
#: library/decimal.rst:2091
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 ""
#: library/decimal.rst:2094
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 ""
#: library/decimal.rst:2099
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 ""
#: library/decimal.rst:2103
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 ""
#: library/decimal.rst:2116
msgid ""
"The solution is either to increase precision or to force rounding of inputs "
"using the unary plus operation:"
msgstr ""
#: library/decimal.rst:2125
msgid ""
"Alternatively, inputs can be rounded upon creation using the :meth:`Context."
"create_decimal` method:"
msgstr ""
#: library/decimal.rst:2131
msgid "Q. Is the CPython implementation fast for large numbers?"
msgstr ""
#: library/decimal.rst:2133
msgid ""
"A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of "
"the decimal module integrate the high speed `libmpdec <https://www.bytereef."
"org/mpdecimal/doc/libmpdec/index.html>`_ library for arbitrary precision "
"correctly-rounded decimal floating point arithmetic [#]_. ``libmpdec`` uses "
"`Karatsuba multiplication <https://en.wikipedia.org/wiki/"
"Karatsuba_algorithm>`_ for medium-sized numbers and the `Number Theoretic "
"Transform <https://en.wikipedia.org/wiki/"
"Discrete_Fourier_transform_(general)#Number-theoretic_transform>`_ for very "
"large numbers."
msgstr ""
#: library/decimal.rst:2143
msgid ""
"The context must be adapted for exact arbitrary precision arithmetic. :attr:"
"`Emin` and :attr:`Emax` should always be set to the maximum values, :attr:"
"`clamp` should always be 0 (the default). Setting :attr:`prec` requires "
"some care."
msgstr ""
#: library/decimal.rst:2147
msgid ""
"The easiest approach for trying out bignum arithmetic is to use the maximum "
"value for :attr:`prec` as well [#]_::"
msgstr ""
#: library/decimal.rst:2156
msgid ""
"For inexact results, :attr:`MAX_PREC` is far too large on 64-bit platforms "
"and the available memory will be insufficient::"
msgstr ""
#: library/decimal.rst:2164
msgid ""
"On systems with overallocation (e.g. Linux), a more sophisticated approach "
"is to adjust :attr:`prec` to the amount of available RAM. Suppose that you "
"have 8GB of RAM and expect 10 simultaneous operands using a maximum of 500MB "
"each::"
msgstr ""
#: library/decimal.rst:2188
msgid ""
"In general (and especially on systems without overallocation), it is "
"recommended to estimate even tighter bounds and set the :attr:`Inexact` trap "
"if all calculations are expected to be exact."
msgstr ""
#: library/decimal.rst:2197
msgid ""
"This approach now works for all exact results except for non-integer powers."
msgstr ""