Jak poprawiać błędy w zaokrąglaniu w operacjach zmiennoprzecinkowych

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 214118 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Symptomy

Wiele kombinacji operacji arytmetycznych na liczbach zmiennoprzecinkowych w programach Microsoft Excel i Microsoft Works może dawać wyniki sprawiające wrażenie nieprawidłowych, różniących się niewielkimi ułamkami. Na przykład jako wynik równania
=1*(,5-,4-,1)
zamiast zera może zostać zwrócona wartość (-2,78E-17) lub -0,0000000000000000278.

Przyczyna

Takie działanie nie stanowi problemu ani nie świadczy o ograniczeniach programów Excel i Works, lecz wynika z faktu, że standard 754 organizacji IEEE (Institute of Electrical and Electronics Engineers) dotyczący liczb zmiennoprzecinkowych wymaga przechowywania liczb w formacie binarnym.

Obejście problemu

Metoda 1

Aby zminimalizować skutki niedokładnego przechowywania liczb w arytmetyce zmiennoprzecinkowej, liczby należy zaokrąglać za pomocą funkcji ZAOKR() do określonego miejsca dziesiętnego wymaganego w obliczeniach. Na przykład w przypadku obliczeń dotyczących waluty liczby zaokrągla się często do drugiego miejsca dziesiętnego:

=ZAOKR(1*(0,5-0,4-0,1);2)

Metoda 2

Błędów wynikających z zaokrąglania liczb zmiennoprzecinkowych można często uniknąć, korzystając z opcji Dokładność jak wyświetlono. Działanie tej opcji wymusza taką dokładność wartości każdej liczby w arkuszu, jaka jest wyświetlana w arkuszu.

Uwaga Korzystanie z opcji Dokładność jak wyświetlono może prowadzić do kumulowania się błędów obliczeniowych, co może z czasem bardzo obniżyć dokładność przechowywanych danych. Z tej opcji należy korzystać tylko wtedy, gdy wyświetlana dokładność jest na pewno wystarczająca do zachowania dokładności danych.

Aby użyć opcji Dokładność jak wyświetlono, wykonaj następujące czynności:

Excel 2000, Excel 2002 i Excel 2003
  1. W menu Narzędzia kliknij polecenie Opcje.
  2. Na karcie Przeliczanie w obszarze Opcje skoroszytu kliknij pole wyboru Dokładność jak wyświetlono, aby je zaznaczyć.
  3. Kliknij przycisk OK.
Excel 2007
  1. Kliknij przycisk pakietu Microsoft Office, kliknij przycisk Opcje programu Excel, a następnie kliknij kategorię Zaawansowane.
  2. W sekcji Podczas obliczania w tym skoroszycie zaznacz odpowiedni skoroszyt, kliknij pole wyboru Ustaw dokładność zgodnie z wyświetlaną, aby je zaznaczyć, a następnie kliknij przycisk OK.
Korzystanie z opcji Dokładność jak wyświetlono wymaga sformatowania liczb przy użyciu określonego formatu liczb.

Aby sformatować komórki z zastosowaniem określonej dokładności liczb, wykonaj następujące czynności:
  1. Kliknij prawym przyciskiem myszy komórki, które chcesz sformatować, a następnie kliknij polecenie Formatuj komórki.
  2. Na karcie Liczby w obszarze Kategoria kliknij pozycję Liczbowe.
  3. W polu Miejsca dziesiętne zaznacz odpowiednią dokładność (liczbę miejsc dziesiętnych).
  4. Kliknij przycisk OK.
Excel 2010
  1. Kliknij kartę Plik, kliknij przycisk Opcje programu Excel, a następnie kliknij kategorię Zaawansowane.
  2. W sekcji Podczas obliczania w tym skoroszycie zaznacz odpowiedni skoroszyt, kliknij pole wyboru Ustaw dokładność zgodnie z wyświetlaną, aby je zaznaczyć, a następnie kliknij przycisk OK.
Korzystanie z opcji Dokładność jak wyświetlono wymaga sformatowania liczb przy użyciu określonego formatu liczb.

Aby sformatować komórki z zastosowaniem określonej dokładności liczb, wykonaj następujące czynności:
  1. Kliknij prawym przyciskiem myszy komórki, które chcesz sformatować, a następnie kliknij polecenie Formatuj komórki.
  2. Na karcie Liczby w obszarze Kategoria kliknij pozycję Liczbowe.
  3. W polu Miejsca dziesiętne zaznacz odpowiednią dokładność (liczbę miejsc dziesiętnych).
  4. Kliknij przycisk OK.

Więcej informacji

Standard 754 organizacji IEEE to metoda przechowywania liczb zmiennoprzecinkowych w zwięzłej postaci i w sposób umożliwiający łatwe wykonywanie na nich operacji. Ten standard jest stosowany w koprocesorach firmy Intel i w większości programów używających arytmetyki zmiennoprzecinkowej na komputerach PC.

Zgodnie ze standardem 754 organizacji IEEE liczby muszą być przechowywane w postaci binarnej w celu zmniejszenia ilości miejsca, które zajmują, i umożliwienia wbudowanym binarnym instrukcjom arytmetycznym dostępnym na wszystkich mikroprocesorach stosunkowo szybkiego przetwarzania danych. Jednak pewne liczby, które są prostymi, nieokresowymi liczbami dziesiętnymi, są konwertowane na okresowe liczby binarne, których nie można przechowywać z idealną dokładnością.

Na przykład liczbę 1/10 można przedstawić w dziesiętnym systemie liczbowym jako prostą liczbę dziesiętną:
0,1
. Ta sama liczba w postaci binarnej staje się natomiast okresową liczbą dziesiętną:
0,0001100011000111000111 (itd.)
. Takiej liczby nie można zapisać z zastosowaniem skończonej ilości miejsca. Dlatego podczas zapisywania jest ona zaokrąglana w dół o wartość około -2,78E-17.

Jeśli w celu uzyskania ostatecznego wyniku wykonuje się wiele operacji arytmetycznych, te błędy w zaokrąglaniu mogą się kumulować.

Materiały referencyjne

Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
78113 Wyniki arytmetycznych obliczeń zmiennoprzecinkowych w programie Excel mogą być niedokładne

Excel 2007 i Excel 2010

Aby uzyskać więcej informacji dotyczących zmieniania dokładności obliczeń, należy kliknąć pozycję Microsoft Office Excel — Pomoc na pasku narzędzi, w Pomocy programu Excel wpisać ciąg zmienianie czasu i sposobu obliczania formuł, a następnie kliknąć przycisk Wyszukaj, aby wyświetlić odpowiedni temat.

Excel 2002 i Excel 2003

Aby uzyskać więcej informacji dotyczących zmieniania dokładności obliczeń, w menu Pomoc należy kliknąć pozycję Microsoft Excel — Pomoc, w Asystencie pakietu Office lub Kreatorze odpowiedzi wpisać ciąg zmienianie czasu i sposobu obliczania formuł, a następnie kliknąć przycisk Wyszukaj, aby wyświetlić odpowiedni temat.

Excel 2000

Aby uzyskać więcej informacji dotyczących zmieniania dokładności obliczeń, w menu Pomoc należy kliknąć pozycję Microsoft Excel — Pomoc, w Asystencie pakietu Office lub Kreatorze odpowiedzi wpisać ciąg zmienianie sposobu obliczania formuł w programie Microsoft Excel, a następnie kliknąć przycisk Wyszukaj, aby wyświetlić odpowiedni temat.

Właściwości

Numer ID artykułu: 214118 - Ostatnia weryfikacja: 18 września 2011 - Weryfikacja: 3.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
Słowa kluczowe: 
kbprb KB214118

Przekaż opinię

 

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