Tip punct flotant

gența în sens logic, ar trebui să utilizați facilitățile built-lo-meteorologice.

Tip punct flotant

Reprezentarea mașinii de numere reale cu virgulă sunt stocate ca numere binare. Aceasta înseamnă că anumite valori fracționare pot fi reprezentate exact (cum ar fi 0,5), iar altele - doar (cum ar fi 0,1 și 0,2). În plus, este folosit pentru a reprezenta un număr fix de biți, astfel încât există o limită privind numărul pentru a lichestvo introducerea unor astfel de numere. Mai jos este un exemplu de sculpta curelei obținute în IDLE:







>>> 0,0, 5,4, 2,5, 8.9e 4

(0.0, 5.4000000000000004, 2,5, .00088999999999999995)

pierderea de probleme de precizie - nu este o problemă unică a limbajului Python; toate limbajele de programare a detecta o problemă cu o reprezentare corectă a numerelor în virgulă mobilă.

Dacă într-adevăr nevoie pentru a se asigura de mare precizie, este posibil să se utilizeze un tip de decimal.Decimal. Aceste numere sunt furnizarea de nivelul de precizie pe care le specificați (implicit 28 zecimal), și poate reprezenta cu exactitate numărul periodic, că, în calitate de 0,1 1. viteza Kie, dar cu astfel de numere sunt semnificativ mai mici decât cu numere de tip float convenționale. Datorita preciziei ridicate de tip decimal.Decimal potrivite pentru producția de calcule fi oficiale.

aritmetică mixt este sprijinit în așa fel încât rezultatele expresii care implică numere întregi și de tip float int tip de număr este float, un flotor și cu participarea unor tipuri complexe Tat rezultat este numărul de complexe de tip. Din cauza tipului de decimal.Decimal au precizie xa fic, ei pot participa la o expresie numai

1 în zecimala numărul 0.1 nu este de bază periodică beat, dar binar (adică reprezentarea mașină) - este fracția actu dar periodic. - Aprox. Trans.

Capitolul 2. Tipuri de date

decimal.Decimal cu alte numere și numere cu un tip de int; rezultatul este numărul de astfel de expresii decimal.Decimal. Dacă încercați să efectuați o operație pe tipuri incompatibile excitat este de cotitură TypeError.







Plutitoare numere de puncte

Toți operatorii numerice și funcțiile sunt prezentate în tabel. 2.2 (p. 74) pot fi aplicate la numerele de tip float, inclusiv instructiuni de atribuire combinatii Rowan. float tip de date poate vyzy vatsya ca funcție - nici un argument, returnează numărul de 0.0, cu argumentul de polițist de tip float înapoi copie argument și lu argumentul celălalt tip de Dumnezeu a încercat să realizeze transformarea obiectului specificat în tipul float. Când se face conversia un argument șir poate conține orice număr de înregistrare simplu formular cu zece punct de cal sau reprezentare exponențială a numărului. Atunci când la realizarea operațiunilor de numere de float poate fi o situație în care rezultatul este o valoare NaN (nu un număr - nu este un număr) „infinit“ sau Din păcate, comportamentul interpretului în FIR că situațiile pot fi diferite în diferite implementări, în funcție de sistemul matematic al bibliotecii.

Mai jos este un exemplu de o funcție simplă, care efectuează o comparație a numerelor de egalitate de tip float cu o precizie de prelucrare:

equal_float def (a, b):

abs întoarcere (a b) <= sys.float_info.epsilon

Dacă introducem în IDLE mediul sys.float_info, ei se vor retrage toate atributele obiectului, care include valorile maxime și minime a numerelor în virgulă flotantă, care pot fi reprezentate de undă clorhidric. Și dacă introduceți ajutorul comenzii (sys.float_info), acesta va fi afișat informații Neko Thoraya despre sys.float_info obiect.

Plutitoare numere de puncte pot fi convertite în numere întregi cu ajutorul int funcției (), care returnează partea întreagă și o fracționare aruncate înapoi în mare parte sau folosind rotund (), funcție care ia în considerare valoarea părții fracționare, sau prin Math.floor () și math.ceil (), care este rotunjită în sus sau în jos la cel mai apropiat întreg. float.is_integer () returneaza o valoare reală, dacă partea fracționară este 0. Reprezentarea parte fracționară a numărului poate fi obținut folosind metoda float.as_integer_ratio (). De exemplu, să x = 2,75,

Tip punct flotant

Exponent marcate folosind caracterul p ( «putere» - «grad"), mai degrabă decât e, din moment ce simbolul E reprezintă o cifră hexazecimală validă.

În plus față de funcționalitatea încorporată pentru a lucra cu un număr de module float matematică tip oferă o varietate de funcții, care sunt listate în Tabelul. 2.5. Iată câteva fragmente de cod tovarășului care demonstrează cum se utilizează funcționalitatea caracteristicilor modulului:

>>> matematica de import

>>> math.pi * (5 ** 2) 78.539816339744831

>>> math.hypot (5, 12)

math.hypot () funcție calculează distanța de la origine la punctul (x. y) și dă același rezultat ca Math.sqrt expresie ((x ** 2) + (y ** 2)).

Modulul de matematică se bazează foarte mult pe biblioteca matematica, care interpretul Python a fost compilat. Acest sens este faptul că, în anumite condiții și, în cazuri limită, funcția modulului poate avea un comportament diferit pe platforme diferite.

Tabelul 2.5. Funcții și constante modul de matematica