28.01.2015 Views

Tutorial Python - Starship

Tutorial Python - Starship

Tutorial Python - Starship

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!