Niedomiar zmiennoprzecinkowy

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Niedomiar zmiennoprzecinkowy (w skrócie niedomiar[1]) – w informatyce stan podczas obliczeń arytmetycznych na liczbach zmiennoprzecinkowych, gdy wartość bezwzględna uzyskanego wyniku jest mniejsza niż najmniejsza liczba większa od zera możliwa do zapisania w rejestrze lub pamięci.

Prostym przykładem wygenerowania niedomiaru zmiennoprzecinkowego jest podniesienie do kwadratu najmniejszej dodatniej liczby zmiennoprzecinkowej. Na przykład dla 32-bitowych liczb zmiennoprzecinkowych w standardzie IEEE 754 można zapisać

1,18·10-38 × 1,18·10-38 = 3,24·10-76

Uzyskany wynik nie mieści się w zakresie dopuszczalnych wartości powodując niedomiar.

Sposoby obsługi niedomiaru[edytuj | edytuj kod]

Wystąpienie niedomiaru nie jest błędem krytycznym[2]. Powoduje jedynie zmniejszenie dokładności obliczeń[3] lecz obliczenia mogą być kontynuowane[2]. Jego obsługa może być następująca:

  1. Zwracanym wynikiem jest zero[1].
  2. Zwracany wynik jest w postaci nieznormalizowanej[4].
  3. Generowany jest wyjątek[3] jako sygnał utraty dokładności.
  4. Generowany jest błąd[5] a program jest przerywany.

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. 1,0 1,1 Butryło 2012 ↓, s. 11.
  2. 2,0 2,1 Butryło 2012 ↓, s. 13.
  3. 3,0 3,1 FP Exceptions - The GNU C Library. [dostęp 2013-05-05].
  4. Liczby zmiennoprzecinkowe. [dostęp 2013-05-05].
  5. Andrzej Marciniak: Turbo Pascal 5.5. Poznań: Wydawnictwo NAKOM, 1991, s. 537. ISBN 83-85060-20-0.

Bibliografia[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]