Nejčastější dotazy/Calc/Přesnost

    From The Document Foundation Wiki
    < Faq‎ | Calc
    This page is a translated version of the page Faq/Calc/Accuracy and the translation is 70% complete.
    Other languages:


    Inherentní problém s přesností

    Calc, stejně jako většina ostatních tabulkových procesorů, používá na hardwaru závisející možnosti výpočtů s plovoucí řádovou čárkou. Vzhledem k tomu, že většina moderního hardwaru využívá binární aritmetiku s plovoucí řádovou čárkou s omezenou přesností definovanou standardem IEEE 754, nelze v programu Calc přesně vyjádřit mnoho desetinných čísel - včetně tak jednoduchých jako 0,1 (Calc interně používá 64bitová čísla s dvojitou přesností). Výpočty s těmito čísly [1] nutně vedou k chybám zaokrouhlování a ty se při každém výpočtu hromadí. Nejedná se o chybu softwaru ani o nic neočekávaného, čemu by se dalo v současnosti vyhnout, aniž bychom museli používat složité softwarové výpočty, které by si kladly nepřijatelně neúměrné nároky na výkon. Je třeba, aby s tímto chováním uživatelé počítali a v případě nutnosti používali zaokrouhlování nebo porovnání s hodnotou epsilon, vyjadřující relativní velikost chyby.

    Příklad:

    A
    1 31000.99
    2 32000.12
    3 =A1-A2

    Výsledkem bude -999,129999999997 v A3 namísto očekávaných -999,13 (možná budete muset zvýšit počet zobrazených desetinných míst ve formátu buňky, abyste uvedený výsledek uviděli).

    Order of magnitude between operands

    The maximum order of magnitude between operands is lower than 10^15 (1015). This is not related to the display format for the cell.

    For instance, when performing 1E+9 + 1E-7 you might not get the result you are expecting, since 9 - (-7) = 16 > 15. On the other hand, performing 1E+8 + 1E-6 will indeed result in 100000000.000001 (you might need to increase shown decimal places in cell format to see this).

    Viz také

    Související záložky shromážděné erAck