Jak opravit zaokrouhlovací chyby v aritmetice s plovoucí desetinnou čárkou

Překlady článku Překlady článku
ID článku: 214118 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

U řady kombinací aritmetických operací s plovoucí desetinnou čárkou v aplikaci Microsoft Excel a sadě Microsoft Works se může stát, že výsledky jsou nesprávné (o velmi malou hodnotu). Příklad: Rovnice
=1*(0,5-0,4-0,1)
může být vyhodnocena jako (-2,78E-17) nebo -0,0000000000000000278 místo 0.

Příčina

Toto chování nepředstavuje potíže ani omezení aplikace Excel nebo sady Works. K tomuto chování dochází, protože standard IEEE (Institute of Electrical and Electronics Engineers) 754 vyžaduje, aby čísla byla ukládána v binárním formátu.

Jak potíže obejít

Metoda 1

Chcete-li minimalizovat nepřesnosti způsobené ukládáním čísel s plovoucí desetinnou čárkou, použijte funkci Round() a zaokrouhlete čísla na tolik desetinných míst, kolik vyžaduje požadovaný výpočet. Používáte-li měnu, budete pravděpodobně zaokrouhlovat na 2 desetinná místa:

=ROUND(1*(0,5-0,4-0,1),2)

Metoda 2

Chybám zaokrouhlení čísel s plovoucí desetinnou čárkou můžete často zabránit použitím možnosti Přesnost podle zobrazení. Tato možnost vynutí, aby každé číslo v sešitu mělo přesnost, která je v sešitu zobrazena.

Poznámka: Použití možnosti Přesnost podle zobrazení může mít kumulativní vliv, který může postupně zvyšovat nepřesnost dat. Tuto možnost proto používejte pouze v případě, kdy jste si jisti, že zobrazená přesnost zachová správnost dat.

Chcete-li použít možnost Přesnost podle zobrazení, postupujte takto:

Excel 2000, Excel 2002 a Excel 2003
  1. V nabídce Nástroje klikněte na příkaz Možnosti.
  2. Na kartě Výpočty kliknutím zaškrtněte políčko Přesnost podle zobrazení v části Možnosti sešitu.
  3. Klikněte na tlačítko OK.
Excel 2007
  1. Klikněte na Tlačítko Microsoft Office, na položku Možnosti aplikace Excel a pak na položku Upřesnit.
  2. V části Při výpočtu tohoto sešitu vyberte požadovaný sešit, zaškrtněte políčko Nastavit přesnost podle zobrazení a pak klikněte na tlačítko OK.
Použijete-li možnost Přesnost podle zobrazení, je třeba pro čísla použít specifický číselný formát.

Chcete-li naformátovat buňky na určitou přesnost, postupujte takto:
  1. Pravým tlačítkem myši klikněte na buňky, které chcete formátovat, a pak klikněte na příkaz Formát buněk.
  2. Na kartě Číslo klikněte v poli Druh na možnost Číslo.
  3. V poli Desetinná místa vyberte požadovanou přesnost (počet desetinných míst).
  4. Klikněte na tlačítko OK.
Excel 2010
  1. Klikněte na kartu Soubor, na položku Možnosti aplikace Excel a potom na položku Upřesnit.
  2. V části Při výpočtu tohoto sešitu vyberte požadovaný sešit, zaškrtněte políčko Nastavit přesnost podle zobrazení a pak klikněte na tlačítko OK.
Použijete-li možnost Přesnost podle zobrazení, je třeba pro čísla použít specifický číselný formát.

Chcete-li naformátovat buňky na určitou přesnost, postupujte takto:
  1. Pravým tlačítkem myši klikněte na buňky, které chcete formátovat, a pak klikněte na příkaz Formát buněk.
  2. Na kartě Číslo klikněte v poli Druh na možnost Číslo.
  3. V poli Desetinná místa vyberte požadovanou přesnost (počet desetinných míst).
  4. Klikněte na tlačítko OK.

Další informace

Standard IEEE 754 představuje metodu kompaktního ukládání čísel s plovoucí desetinnou čárkou, která usnadňuje manipulaci s těmito čísly. Tento standard je využíván koprocesory Intel a většinou programů pro počítače PC k implementaci operací s plovoucí desetinnou čárkou.

Standard IEEE 754 specifikuje, že z důvodu omezení nároků na ukládání jsou čísla ukládána v binárním formátu, a umožňuje využití integrovaných binárních aritmetických instrukcí, které jsou k dispozici u všech mikroprocesorů, k relativně rychlému zpracování dat. Některá jednoduchá neperiodická desetinná čísla však jsou převedena na periodická binární čísla, která nelze uložit zcela přesně.

Například číslo 1/10 lze v desítkové soustavě vyjádřit jako jednoduché desetinné číslo:
0,1
. Stejné číslo v binárním formátu je však periodické binární desetinné číslo:
.0001100011000111000111 (a tak dále)
. Toto číslo nelze vyjádřit v konečném (omezeném) prostoru. Toto číslo je proto při uložení zaokrouhleno dolů o přibližně -2,78E-17.

Pokud je k získání výsledku třeba provést několik aritmetických operací, mohou se tyto chyby zaokrouhlení kumulovat.

Odkazy

Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
78113 Aritmetické operace s plovoucí desetinnou čárkou mohou v aplikaci Excel poskytovat nepřesné výsledky

Excel 2007 a Excel 2010

Chcete-li zobrazit další informace o postupu při změně přesnosti výpočtu, klikněte na tlačítko Nápověda aplikace Microsoft Office Excel na panelu nástrojů, zadejte text změna doby a postupu výpočtu vzorců v nápovědě aplikace Excel a pak klikněte na tlačítko Hledat. Zobrazí se příslušné téma nápovědy.

Excel 2002 a Excel 2003

Další informace o změně přesnosti výpočtu zobrazíte kliknutím na příkaz Nápověda pro Microsoft Excel v nabídce Nápověda, zadáním textu změna doby a postupu výpočtu vzorců do pole v Pomocníkovi Office nebo v Průvodci odpověďmi a kliknutím na tlačítko Hledat.

Excel 2000

Další informace o změně přesnosti výpočtu zobrazíte kliknutím na příkaz Nápověda pro Microsoft Excel v nabídce Nápověda, zadáním textu změna způsobu, jímž aplikace Microsoft Excel počítá vzorce do pole v Pomocníkovi Office nebo v Průvodci odpověďmi a kliknutím na tlačítko Hledat.

Vlastnosti

ID článku: 214118 - Poslední aktualizace: 18. září 2011 - Revize: 2.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
Klíčová slova: 
kbprb KB214118

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com