Zvýšená presnosť výpočtov v aplikáciách Pages, Numbers a Keynote

Po aktualizácii aplikácií Pages, Numbers a Keynote si môžete vo výsledkoch výpočtov v dokumentoch všimnúť menšie zmeny. Súčasťou najnovšej verzie balíka iWork je totiž aktualizácia výpočtového nástroja, ktorý poskytuje ešte presnejšie výsledky ako doteraz.

Pri väčšine vzorcov nenastane žiaden viditeľný rozdiel. No výpočty, ktorých výsledkom sú extrémne malé čísla (alebo ktoré s takýmito číslami pracujú), môžu teraz zobraziť ešte presnejšiu hodnotu.

Príklad 1

V predchádzajúcich verziách aplikácií Numbers, Pages a Keynote bola napríklad výsledkom výpočtu = 10,0 - 9,8 hodnota 0,199999999999999.

Úpravou počtu desatinných miest zobrazených v bunke (od 1 do 14 desatinných miest) môžete problém opraviť a zobraziť očakávaný výsledok 0,2. Ak zvýšite počet desatinných miest zobrazených v bunke, výsledkom bude hodnota 0,199999999999999000000000000000.

Dôvodom je spôsob, akým sa v binárnej sústave interne uchovávajú desatinné čísla. Binárne reprezentovanie desatinných čísel môže viesť k veľmi malým nezrovnalostiam. Výpočtový nástroj v aplikáciách Pages, Numbers a Keynote vždy používal sofistikované techniky, vďaka ktorým sa tieto rozdiely v rámci výpočtov nehromadili. Pri veľmi presných výpočtoch sa však rozdiely môžu prejaviť.

Nový výpočtový nástroj je oproti predchádzajúcim verziám výrazne zlepšený, pretože pri výpočtoch pracuje s decimálnym reprezentovaním čísel.

Preto bude teraz výsledkom rovnakého výpočtu = 10,0 - 9,8 hodnota 0,2. Pri zvýšení počtu zobrazených desatinných miest sa teraz zobrazí hodnota 0,2000000000000000000000000000000.

Príklad 2

V predchádzajúcich verziách aplikácie Numbers vrátil vzorec ROUND(8,415;2) výsledok 8,41. Aj to je dôsledok toho, akým spôsobom sú hodnoty uchovávané interne v binárnej sústave.

Nový nástroj na výpočty vráti pri vzorci ROUND(8,415;2) hodnotu 8,42.

Porovnanie kódovaní Binary Coded Decimal a Decimal Floating Point

Väčšina počítačov ukladá čísla ako postupnosti núl a jednotiek, čo sú binárne hodnoty. Proces nazývaný kódovanie Binary Coded Decimal (BCD) konvertuje desatinné čísla na ich hodnoty v binárnej sústave. Keď sa čísla kódujú pomocou BCD, niektoré hodnoty nie je možné reprezentovať s úplnou presnosťou. Číslo 0,2 napríklad vyzerá v binárnom formáte ako 0,001100110011... (periodické). Aby bolo možné hodnotu zakódovať pomocou BCD, musí sa skrátiť. Tým sa uložená hodnota mierne pozmení. Aj keď sú nezrovnalosti spôsobené kódovaním BCD zvyčajne veľmi malé, pri použití v určitých typoch reťazcov výpočtov sa môže ich účinok zvýšiť a môžu byť zjavnejšie.

Najnovšie verzie aplikácií Pages, Numbers a Keynote kódujú čísla pomocou 128-bitového kódovania Decimal Floating Point (DFP). Tento spôsob kódovania desatinných čísel je oveľa presnejší a nedochádza pri ňom k chybám zaokrúhľovania, ako je to pri kódovaní BCD. Aktualizovaný výpočtový nástroj okrem toho pracuje priamo s číslami kódovanými pomocou DFP. Hodnoty v bunkách tabuliek sú preto uložené presnejšie a presnejšie sa vypočítajú aj výsledky vzorcov.

Pri mnohých vzorcoch nenastane žiaden viditeľný rozdiel. No výpočty, ktorých výsledkom sú extrémne malé čísla (alebo ktoré s takýmito číslami pracujú), môžu teraz zobraziť ešte presnejšiu hodnotu.

Dátum zverejnenia: