17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

decimal<br />

Principaux modules, partie 2<br />

CHAPITRE 9<br />

Introduit dans la version 2.4, le module decimal crée des objets de type Decimal afin<br />

de représenter des nombres décimaux. Les objets de type Decimal s’instancient avec<br />

un objet string, un entier, ou un tuple, représentant le nombre décimal.<br />

class Decimal([value [, context]])<br />

value peut être :<br />

un objet string, qui représente un décimal en respectant la syntaxe numérique ;<br />

un entier ;<br />

un tuple de trois éléments :<br />

– le signe (0 pour positif, 1 pour négatif ) ;<br />

– un tuple contenant tous les chiffres qui composent le décimal ;<br />

– un entier exposant, qui place la virgule.<br />

Lorsque value n’est pas fourni, le décimal est initialisé à 0.<br />

context est un objet Context, qui spécifie un environnement particulier pour l’objet.<br />

Par rapport aux entiers réels classiques, ce nouveau type présente un avantage<br />

intéressant : sa représentation reste exacte.<br />

Représentation décimale<br />

>>> 5.75 / 2.5<br />

2.2999999999999998<br />

>>> from decimal import Decimal<br />

>>> Decimal('5.75') / Decimal('2.5')<br />

Decimal("2.3")<br />

Il est en outre possible de définir le degré de précision, qui est réglé à 28 chiffres<br />

significatifs par défaut , par le biais des objets Context.<br />

Un objet Context détermine un environnement d’exécution. Il contient :<br />

prec : degré de précision, par défaut à 28 ;<br />

rounding : définit le fonctionnement de l’arrondi et peut prendre entre autres<br />

valeurs :<br />

– ROUND_CEILING : arrondi supérieur ;<br />

– ROUND_DOWN : arrondi vers zéro ;<br />

– ROUND_FLOOR : arrondi inférieur.<br />

Chaque thread possède un contexte qui peut être récupéré par getcontext() et écrit<br />

par setcontext(contexte).<br />

285

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!