# 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: 2023-01-15 22:33+0100\n" "PO-Revision-Date: 2022-10-18 15:52+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \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 2.4.1\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 #, fuzzy 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 #, fuzzy msgid "" "IBM's General Decimal Arithmetic Specification, `The General Decimal " "Arithmetic Specification `_." msgstr "" "La spécification d'IBM sur l'arithmétique décimale : `The General Decimal " "Arithmetic Specification `_." #: 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 *n*-uplet, :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:835 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 "" "Alternative constructor that only accepts instances of :class:`float` or :" "class:`int`." msgstr "" #: library/decimal.rst:579 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:585 msgid "" "From Python 3.2 onwards, a :class:`Decimal` instance can also be constructed " "directly from a :class:`float`." msgstr "" #: library/decimal.rst:603 msgid "" "Fused multiply-add. Return self*other+third with no rounding of the " "intermediate product self*other." msgstr "" #: library/decimal.rst:611 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 "" "Renvoie :const:`True` si l'argument est sous forme canonique et :const:" "`False` sinon. Actuellement, une instance :class:`Decimal` est toujours " "canonique, donc cette opération renvoie toujours :const:`True`." #: library/decimal.rst:617 msgid "" "Return :const:`True` if the argument is a finite number, and :const:`False` " "if the argument is an infinity or a NaN." msgstr "" "Renvoie :const:`True` si l'argument est un nombre fini et :const:`False` si " "l'argument est un infini ou NaN." #: library/decimal.rst:622 msgid "" "Return :const:`True` if the argument is either positive or negative infinity " "and :const:`False` otherwise." msgstr "" "Renvoie :const:`True` si l'argument est un infini positif ou négatif et :" "const:`False` sinon." #: library/decimal.rst:627 msgid "" "Return :const:`True` if the argument is a (quiet or signaling) NaN and :" "const:`False` otherwise." msgstr "" "Renvoie :const:`True` si l'argument est un NaN (signalétique ou silencieux) " "et :const:`False` sinon." #: library/decimal.rst:632 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:637 msgid "" "Return :const:`True` if the argument is a quiet NaN, and :const:`False` " "otherwise." msgstr "" "Renvoie :const:`True` si l'argument est un NaN silencieux et :const:`False` " "sinon." #: library/decimal.rst:642 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 "" "Renvoie :const:`True` si l'argument est négatif et :const:`False` sinon. " "Notez que les zéros et les NaNs peuvent être signés." #: library/decimal.rst:647 msgid "" "Return :const:`True` if the argument is a signaling NaN and :const:`False` " "otherwise." msgstr "" "Renvoie :const:`True` si l'argument est un NaN signalétique et :const:" "`False` sinon." #: library/decimal.rst:652 msgid "" "Return :const:`True` if the argument is subnormal, and :const:`False` " "otherwise." msgstr "" #: library/decimal.rst:657 msgid "" "Return :const:`True` if the argument is a (positive or negative) zero and :" "const:`False` otherwise." msgstr "" "Renvoie :const:`True` si l'argument est un zéro (positif ou négatif) et :" "const:`False` sinon." #: library/decimal.rst:662 msgid "" "Return the natural (base e) logarithm of the operand. The result is " "correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode." msgstr "" "Renvoie le logarithme naturel (base e) de l'opérande. Le résultat est " "arrondi avec le mode :const:`ROUND_HALF_EVEN`." #: library/decimal.rst:667 msgid "" "Return the base ten logarithm of the operand. The result is correctly " "rounded using the :const:`ROUND_HALF_EVEN` rounding mode." msgstr "" "Renvoie le logarithme en base 10 de l'opérande. Le résultat est arrondi avec " "le mode :const:`ROUND_HALF_EVEN`." #: library/decimal.rst:672 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:680 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:686 msgid "" ":meth:`logical_invert` is a logical operation. The result is the digit-wise " "inversion of the operand." msgstr "" #: library/decimal.rst:691 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:697 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:703 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:710 msgid "" "Similar to the :meth:`.max` method, but the comparison is done using the " "absolute values of the operands." msgstr "" #: library/decimal.rst:715 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:722 msgid "" "Similar to the :meth:`.min` method, but the comparison is done using the " "absolute values of the operands." msgstr "" #: library/decimal.rst:727 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:733 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:739 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:746 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:755 msgid "" "Return a string describing the *class* of the operand. The returned value " "is one of the following ten strings." msgstr "" # Élément d'une liste, d'où le ; final #: library/decimal.rst:758 msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." msgstr "``\"-Infinity\"``, indiquant que l'opérande est l'infini négatif ;" #: library/decimal.rst:759 msgid "" "``\"-Normal\"``, indicating that the operand is a negative normal number." msgstr "" #: library/decimal.rst:760 msgid "" "``\"-Subnormal\"``, indicating that the operand is negative and subnormal." msgstr "" # Élément d'une liste, d'où le ; final #: library/decimal.rst:761 msgid "``\"-Zero\"``, indicating that the operand is a negative zero." msgstr "``\"-Zero\"``, indiquant que l'opérande est un zéro négatif ;" # Élément d'une liste, d'où le ; final #: library/decimal.rst:762 msgid "``\"+Zero\"``, indicating that the operand is a positive zero." msgstr "``\"+Zero\"``, indiquant que l'opérande est un zéro positif ;" #: library/decimal.rst:763 msgid "" "``\"+Subnormal\"``, indicating that the operand is positive and subnormal." msgstr "" #: library/decimal.rst:764 msgid "" "``\"+Normal\"``, indicating that the operand is a positive normal number." msgstr "" # Élément d'une liste, d'où le ; final #: library/decimal.rst:765 msgid "``\"+Infinity\"``, indicating that the operand is positive infinity." msgstr "``\"+Infinity\"``, indiquant que l'opérande est l'infini positif ;" # Élément d'une liste, d'où le ; final #: library/decimal.rst:766 msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)." msgstr "" "``\"NaN\"``, indiquant que l'opérande est un NaN (*Not a Number*, pas un " "nombre) silencieux ;" #: library/decimal.rst:767 msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN." msgstr "" "``\"sNaN\"``, indiquant que l'opérande est un NaN (*Not a Number*, pas un " "nombre) signalétique." #: library/decimal.rst:771 msgid "" "Return a value equal to the first operand after rounding and having the " "exponent of the second operand." msgstr "" #: library/decimal.rst:777 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:783 msgid "" "Also unlike other operations, quantize never signals Underflow, even if the " "result is subnormal and inexact." msgstr "" #: library/decimal.rst:786 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:792 msgid "" "An error is returned whenever the resulting exponent is greater than :attr:" "`Emax` or less than :attr:`Etiny`." msgstr "" #: library/decimal.rst:797 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:803 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:810 msgid "If the result is zero then its sign will be the sign of *self*." msgstr "" #: library/decimal.rst:821 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:832 msgid "" "Test whether self and other have the same exponent or whether both are :" "const:`NaN`." msgstr "" #: library/decimal.rst:841 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:847 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:857 msgid "Return the square root of the argument to full precision." msgstr "" #: library/decimal.rst:1457 msgid "" "Convert to a string, using engineering notation if an exponent is needed." msgstr "" #: library/decimal.rst:1459 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:868 msgid "" "For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``." msgstr "" #: library/decimal.rst:872 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:877 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:885 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:893 msgid "Logical operands" msgstr "" #: library/decimal.rst:895 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:907 msgid "Context objects" msgstr "" #: library/decimal.rst:909 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:913 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:919 msgid "Return the current context for the active thread." msgstr "" #: library/decimal.rst:924 msgid "Set the current context for the active thread to *c*." msgstr "" #: library/decimal.rst:926 msgid "" "You can also use the :keyword:`with` statement and the :func:`localcontext` " "function to temporarily change the active context." msgstr "" #: library/decimal.rst:931 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. The *kwargs* argument is " "used to set the attributes of the new context." msgstr "" #: library/decimal.rst:937 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:947 msgid "Using keyword arguments, the code would be the following::" msgstr "" #: library/decimal.rst:955 msgid "" "Raises :exc:`TypeError` if *kwargs* supplies an attribute that :class:" "`Context` doesn't support. Raises either :exc:`TypeError` or :exc:" "`ValueError` if *kwargs* supplies an invalid value for an attribute." msgstr "" #: library/decimal.rst:959 msgid "" ":meth:`localcontext` now supports setting context attributes through the use " "of keyword arguments." msgstr "" #: library/decimal.rst:962 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:968 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:974 msgid "" "Because many of the traps are enabled, this context is useful for debugging." msgstr "" #: library/decimal.rst:979 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:984 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:992 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:996 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:1001 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:1004 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:1009 msgid "" "In addition to the three supplied contexts, new contexts can be created with " "the :class:`Context` constructor." msgstr "" #: library/decimal.rst:1015 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:1019 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:1022 msgid "" "The *rounding* option is one of the constants listed in the section " "`Rounding Modes`_." msgstr "" #: library/decimal.rst:1025 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:1028 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:1032 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:1036 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:1051 msgid "" "A *clamp* value of :const:`1` allows compatibility with the fixed-width " "decimal interchange formats specified in IEEE 754." msgstr "" #: library/decimal.rst:1054 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:1067 msgid "Resets all of the flags to :const:`0`." msgstr "" #: library/decimal.rst:1071 msgid "Resets all of the traps to :const:`0`." msgstr "" #: library/decimal.rst:1077 msgid "Return a duplicate of the context." msgstr "" #: library/decimal.rst:1081 msgid "Return a copy of the Decimal instance num." msgstr "" #: library/decimal.rst:1085 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:1089 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:1103 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:1109 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:1129 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:1135 msgid "Returns a value equal to ``Emax - prec + 1``." msgstr "" #: library/decimal.rst:1137 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:1147 msgid "Returns the absolute value of *x*." msgstr "Renvoie la valeur absolue de *x*." #: library/decimal.rst:1152 msgid "Return the sum of *x* and *y*." msgstr "Renvoie la somme de *x* et *y*." #: library/decimal.rst:1157 msgid "Returns the same Decimal object *x*." msgstr "" #: library/decimal.rst:1162 msgid "Compares *x* and *y* numerically." msgstr "" #: library/decimal.rst:1167 msgid "Compares the values of the two operands numerically." msgstr "" #: library/decimal.rst:1172 msgid "Compares two operands using their abstract representation." msgstr "" #: library/decimal.rst:1177 msgid "" "Compares two operands using their abstract representation, ignoring sign." msgstr "" #: library/decimal.rst:1182 msgid "Returns a copy of *x* with the sign set to 0." msgstr "" #: library/decimal.rst:1187 msgid "Returns a copy of *x* with the sign inverted." msgstr "Renvoie une copie de *x* mais de signe opposé." #: library/decimal.rst:1192 msgid "Copies the sign from *y* to *x*." msgstr "Copie le signe de *y* vers *x*." #: library/decimal.rst:1197 msgid "Return *x* divided by *y*." msgstr "Renvoie *x* divisé par *y*." #: library/decimal.rst:1202 msgid "Return *x* divided by *y*, truncated to an integer." msgstr "Renvoie *x* divisé par *y*, tronqué comme entier." #: library/decimal.rst:1207 msgid "Divides two numbers and returns the integer part of the result." msgstr "Renvoie la partie entière de la division entre deux nombres." #: library/decimal.rst:1212 #, fuzzy msgid "Returns ``e ** x``." msgstr "Renvoie ``e ** x``." #: library/decimal.rst:1217 msgid "Returns *x* multiplied by *y*, plus *z*." msgstr "Renvoie *x* multiplié par *y*, plus *z*." #: library/decimal.rst:1222 msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." msgstr "" #: library/decimal.rst:1227 msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``." msgstr "" #: library/decimal.rst:1232 msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." msgstr "Renvoie ``True`` si *x* est infini et ``False`` sinon." #: library/decimal.rst:1237 msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." msgstr "" "Renvoie ``True`` si *x* est un NaN (silencieux ou signalétique) et ``False`` " "sinon." #: library/decimal.rst:1242 msgid "" "Returns ``True`` if *x* is a normal number; otherwise returns ``False``." msgstr "" #: library/decimal.rst:1247 msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." msgstr "Renvoie ``True`` si *x* est un NaN silencieux et ``False`` sinon." #: library/decimal.rst:1252 msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." msgstr "Renvoie ``True`` si *x* est négatif et ``False`` sinon." #: library/decimal.rst:1257 msgid "" "Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." msgstr "Renvoie ``True`` si *x* est un NaN signalétique et ``False`` sinon." #: library/decimal.rst:1262 msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." msgstr "" #: library/decimal.rst:1267 msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." msgstr "Renvoie ``True`` si *x* est un zéro et ``False`` sinon." #: library/decimal.rst:1272 msgid "Returns the natural (base e) logarithm of *x*." msgstr "Renvoie le logarithme naturel (en base e) de *x*." #: library/decimal.rst:1277 msgid "Returns the base 10 logarithm of *x*." msgstr "Renvoie le logarithme en base 10 de *x*." #: library/decimal.rst:1282 msgid "Returns the exponent of the magnitude of the operand's MSD." msgstr "" #: library/decimal.rst:1287 msgid "Applies the logical operation *and* between each operand's digits." msgstr "" #: library/decimal.rst:1292 msgid "Invert all the digits in *x*." msgstr "" #: library/decimal.rst:1297 msgid "Applies the logical operation *or* between each operand's digits." msgstr "" #: library/decimal.rst:1302 msgid "Applies the logical operation *xor* between each operand's digits." msgstr "" #: library/decimal.rst:1307 msgid "Compares two values numerically and returns the maximum." msgstr "Renvoie le maximum entre les deux valeurs numériques." #: library/decimal.rst:1322 msgid "Compares the values numerically with their sign ignored." msgstr "" #: library/decimal.rst:1317 msgid "Compares two values numerically and returns the minimum." msgstr "" #: library/decimal.rst:1327 msgid "Minus corresponds to the unary prefix minus operator in Python." msgstr "" #: library/decimal.rst:1332 msgid "Return the product of *x* and *y*." msgstr "Renvoie la multiplication de *x* avec *y*." #: library/decimal.rst:1337 msgid "Returns the largest representable number smaller than *x*." msgstr "" #: library/decimal.rst:1342 msgid "Returns the smallest representable number larger than *x*." msgstr "" #: library/decimal.rst:1347 msgid "Returns the number closest to *x*, in direction towards *y*." msgstr "" #: library/decimal.rst:1352 msgid "Reduces *x* to its simplest form." msgstr "Réduit *x* à sa forme la plus simple." #: library/decimal.rst:1357 msgid "Returns an indication of the class of *x*." msgstr "" #: library/decimal.rst:1362 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:1369 msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given." msgstr "" #: library/decimal.rst:1371 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:1377 msgid "" "``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if " "``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``." msgstr "" #: library/decimal.rst:1380 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:1385 msgid "" "With three arguments, compute ``(x**y) % modulo``. For the three argument " "form, the following restrictions on the arguments hold:" msgstr "" #: library/decimal.rst:1388 msgid "all three arguments must be integral" msgstr "" # Élément d'une liste, d'où le ; final #: library/decimal.rst:1389 msgid "``y`` must be nonnegative" msgstr "``y`` ne doit pas être négatif ;" # Élément d'une liste, d'où le ; final #: library/decimal.rst:1390 msgid "at least one of ``x`` or ``y`` must be nonzero" msgstr "au moins l'un de ``x`` ou ``y`` doit être différent de zéro ;" #: library/decimal.rst:1391 msgid "``modulo`` must be nonzero and have at most 'precision' digits" msgstr "" #: library/decimal.rst:1393 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:1403 msgid "Returns a value equal to *x* (rounded), having the exponent of *y*." msgstr "" #: library/decimal.rst:1408 msgid "Just returns 10, as this is Decimal, :)" msgstr "Renvoie 10 car c'est Decimal, :)" #: library/decimal.rst:1413 msgid "Returns the remainder from integer division." msgstr "Donne le reste de la division entière." #: library/decimal.rst:1415 msgid "" "The sign of the result, if non-zero, is the same as that of the original " "dividend." msgstr "" #: library/decimal.rst:1421 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:1427 msgid "Returns a rotated copy of *x*, *y* times." msgstr "" #: library/decimal.rst:1432 msgid "Returns ``True`` if the two operands have the same exponent." msgstr "Renvoie ``True`` si les deux opérandes ont le même exposant." #: library/decimal.rst:1437 msgid "Returns the first operand after adding the second value its exp." msgstr "" #: library/decimal.rst:1442 msgid "Returns a shifted copy of *x*, *y* times." msgstr "" #: library/decimal.rst:1447 msgid "Square root of a non-negative number to context precision." msgstr "" #: library/decimal.rst:1452 msgid "Return the difference between *x* and *y*." msgstr "" #: library/decimal.rst:1466 msgid "Rounds to an integer." msgstr "" #: library/decimal.rst:1471 msgid "Converts a number to a string using scientific notation." msgstr "" #: library/decimal.rst:1478 msgid "Constants" msgstr "Constantes" #: library/decimal.rst:1480 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 "" "Les constantes de cette section ne sont pertinentes que pour le module C. " "Elles sont aussi incluses pour le compatibilité dans la version en Python " "pur." #: library/decimal.rst:1484 msgid "32-bit" msgstr "32-bit" #: library/decimal.rst:1484 msgid "64-bit" msgstr "64-bit" #: library/decimal.rst:1488 msgid ":const:`425000000`" msgstr ":const:`425000000`" #: library/decimal.rst:1488 msgid ":const:`999999999999999999`" msgstr ":const:`999999999999999999`" #: library/decimal.rst:1490 msgid ":const:`-425000000`" msgstr ":const:`-425000000`" #: library/decimal.rst:1490 msgid ":const:`-999999999999999999`" msgstr ":const:`-999999999999999999`" #: library/decimal.rst:1492 msgid ":const:`-849999999`" msgstr ":const:`-849999999`" #: library/decimal.rst:1492 msgid ":const:`-1999999999999999997`" msgstr ":const:`-1999999999999999997`" #: library/decimal.rst:1498 msgid "" "The value is ``True``. Deprecated, because Python now always has threads." msgstr "" "La valeur est ``True``. Déprécié, parce que maintenant Python possède " "toujours des fils d'exécution." #: library/decimal.rst:1504 msgid "" "The default value is ``True``. If Python is :option:`configured using the --" "without-decimal-contextvar option <--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:1509 msgid "backported to 3.7 and 3.8." msgstr "" #: library/decimal.rst:1513 msgid "Rounding modes" msgstr "Modes d'arrondi" #: library/decimal.rst:1517 msgid "Round towards :const:`Infinity`." msgstr "" #: library/decimal.rst:1521 msgid "Round towards zero." msgstr "" #: library/decimal.rst:1525 msgid "Round towards :const:`-Infinity`." msgstr "" #: library/decimal.rst:1529 msgid "Round to nearest with ties going towards zero." msgstr "" #: library/decimal.rst:1533 msgid "Round to nearest with ties going to nearest even integer." msgstr "" #: library/decimal.rst:1537 msgid "Round to nearest with ties going away from zero." msgstr "" #: library/decimal.rst:1541 msgid "Round away from zero." msgstr "" #: library/decimal.rst:1545 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:1552 msgid "Signals" msgstr "Signaux" #: library/decimal.rst:1554 msgid "" "Signals represent conditions that arise during computation. Each corresponds " "to one context flag and one context trap enabler." msgstr "" #: library/decimal.rst:1557 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:1562 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:1570 msgid "Altered an exponent to fit representation constraints." msgstr "" #: library/decimal.rst:1572 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:1579 msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`." msgstr "" #: library/decimal.rst:1584 msgid "Signals the division of a non-infinite number by zero." msgstr "" #: library/decimal.rst:1586 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:1593 msgid "Indicates that rounding occurred and the result is not exact." msgstr "" #: library/decimal.rst:1595 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:1602 msgid "An invalid operation was performed." msgstr "" #: library/decimal.rst:1604 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:1620 msgid "Numerical overflow." msgstr "Débordement numérique." #: library/decimal.rst:1622 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:1631 msgid "Rounding occurred though possibly no information was lost." msgstr "" #: library/decimal.rst:1633 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:1641 msgid "Exponent was lower than :attr:`Emin` prior to rounding." msgstr "" #: library/decimal.rst:1643 msgid "" "Occurs when an operation result is subnormal (the exponent is too small). If " "not trapped, returns the result unchanged." msgstr "" #: library/decimal.rst:1649 msgid "Numerical underflow with result rounded to zero." msgstr "" #: library/decimal.rst:1651 msgid "" "Occurs when a subnormal result is pushed to zero by rounding. :class:" "`Inexact` and :class:`Subnormal` are also signaled." msgstr "" #: library/decimal.rst:1657 msgid "Enable stricter semantics for mixing floats and Decimals." msgstr "" #: library/decimal.rst:1659 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:1667 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:1671 msgid "The following table summarizes the hierarchy of signals::" msgstr "" #: library/decimal.rst:1692 msgid "Floating Point Notes" msgstr "" #: library/decimal.rst:1696 msgid "Mitigating round-off error with increased precision" msgstr "" #: library/decimal.rst:1698 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:1702 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:1726 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:1746 msgid "Special values" msgstr "" #: library/decimal.rst:1748 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:1752 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:1757 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:1761 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:1769 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:1773 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:1786 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:1791 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:1806 msgid "Working with threads" msgstr "" #: library/decimal.rst:1808 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:1812 msgid "" "Likewise, the :func:`setcontext` function automatically assigns its target " "to the current thread." msgstr "" #: library/decimal.rst:1815 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:1819 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:1844 msgid "Recipes" msgstr "Cas pratiques" #: library/decimal.rst:1846 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:2001 msgid "Decimal FAQ" msgstr "FAQ *decimal*" #: library/decimal.rst:2003 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:2006 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:2012 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:2016 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:2034 msgid "" "Q. Once I have valid two place inputs, how do I maintain that invariant " "throughout an application?" msgstr "" "Q. Une fois que mes entrées sont à deux décimales valides, comment maintenir " "cet invariant dans l'application ?" #: library/decimal.rst:2037 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 "" "R. Certaines opérations comme l'addition, la soustraction et la " "multiplication par un entier préservent automatiquement la virgule fixe. " "D'autres opérations, comme la division et la multiplication par des non-" "entiers, changent le nombre de décimales et doivent être suivies d'une " "étape :meth:`quantize` :" #: library/decimal.rst:2055 msgid "" "In developing fixed-point applications, it is convenient to define functions " "to handle the :meth:`quantize` step:" msgstr "" "Lors du développement d'applications en virgule fixe, il est pratique de " "définir des fonctions pour gérer cette étape de quantification par :meth:" "`quantize` :" #: library/decimal.rst:2068 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:2073 msgid "" "A. The :meth:`normalize` method maps all equivalent values to a single " "representative:" msgstr "" #: library/decimal.rst:2080 msgid "" "Q. Some decimal values always print with exponential notation. Is there a " "way to get a non-exponential representation?" msgstr "" #: library/decimal.rst:2083 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:2088 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:2098 msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?" msgstr "" #: library/decimal.rst:2100 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:2109 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:2112 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:2117 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:2121 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:2134 msgid "" "The solution is either to increase precision or to force rounding of inputs " "using the unary plus operation:" msgstr "" #: library/decimal.rst:2143 msgid "" "Alternatively, inputs can be rounded upon creation using the :meth:`Context." "create_decimal` method:" msgstr "" #: library/decimal.rst:2149 msgid "Q. Is the CPython implementation fast for large numbers?" msgstr "" #: library/decimal.rst:2151 msgid "" "A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " "the decimal module integrate the high speed `libmpdec `_ library for arbitrary precision " "correctly rounded decimal floating point arithmetic [#]_. ``libmpdec`` uses " "`Karatsuba multiplication `_ for medium-sized numbers and the `Number Theoretic " "Transform `_ for very " "large numbers." msgstr "" #: library/decimal.rst:2161 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:2165 msgid "" "The easiest approach for trying out bignum arithmetic is to use the maximum " "value for :attr:`prec` as well [#]_::" msgstr "" #: library/decimal.rst:2174 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:2182 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:2206 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:2215 msgid "" "This approach now works for all exact results except for non-integer powers." msgstr ""