You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
from decimal import *<br />
>>> Decimal(’0.70’) * Decimal(’1.05’)<br />
Decimal("0.7350")<br />
>>> .70 * 1.05<br />
0.73499999999999999<br />
În exemplu, rezultatul funcţiei Decimal menţine la sfărşit un zero pentru ca partea zecimală să fie compusă din<br />
patru cifre. Astfel se simulează calculul făcut cu mâna, când înmultind doua numere, fiecare cu două zecimale se<br />
obţine la rezultat partea zecimală din patru cifre.În acest fel se evită situaţia care apare când aritmetica în virgulă<br />
flotantă binară nu reprezintă precis cantitatea zecimală.<br />
Pentru că returnează rezultatul exact clasa Decimal este folosită în calcule modulo şi în teste de egalitate,<br />
domenii pentru care aritmetica în virgulă flotantă binară nu este aplicabilă :<br />
>>> Decimal(’1.00’) % Decimal(’.10’)<br />
Decimal("0.00")<br />
>>> 1.00 % 0.10<br />
0.09999999999999995<br />
>>> sum([Decimal(’0.1’)]*10) == Decimal(’1.0’)<br />
True<br />
>>> sum([0.1]*10) == 1.0<br />
False<br />
Modulul Decimal poate executa calcule cu o precizie impusă de utilizator :<br />
>>> getcontext().prec = 36<br />
>>> Decimal(1) / Decimal(7)<br />
Decimal("0.142857142857142857142857142857142857")<br />
11.8. Aritmetica în virgulă flotantă zecimală 81