| Termin | Definicja |
|---|---|
| Typy danych liczbowych | Typy danych liczbowych obejmują liczby całkowite, dziesiętne i zmiennoprzecinkowe o różnym zakresie i precyzji. Jak liczby są reprezentowane w pamięciTypy danych liczbowych określają, w jaki sposób program przechowuje wartości, jakie liczby można zapisać oraz z jaką dokładnością można wykonywać obliczenia. Najprostszy podział obejmuje liczby całkowite, liczby stałoprzecinkowe lub dziesiętne oraz liczby zmiennoprzecinkowe. Wybór typu wpływa nie tylko na zakres wartości, lecz także na ilość zajmowanej pamięci, szybkość operacji i sposób obsługi zaokrągleń. Liczby całkowite nie zawierają części ułamkowej. Mogą być przechowywane jako wartości ze znakiem albo bez znaku. Typ bez znaku reprezentuje wyłącznie wartości nieujemne, natomiast typ ze znakiem pozwala zapisać również liczby ujemne. Dla typowego typu 32-bitowego zakres wartości zależy od sposobu interpretacji bitu znaku: liczba całkowita ze znakiem obejmuje zwykle zakres od -2 147 483 648 do 2 147 483 647, a bez znaku od 0 do 4 294 967 295. Całkowite, dziesiętne i zmiennoprzecinkoweTyp całkowity sprawdza się przy licznikach, numerach identyfikacyjnych, rozmiarach, indeksach tablic i innych wartościach, które nie wymagają ułamków. Nie powinno się jednak automatycznie traktować każdego numeru jako liczby. Kod pocztowy, numer telefonu lub identyfikator urządzenia może zawierać zera początkowe albo znaki specjalne, dlatego w wielu zastosowaniach właściwszy jest typ tekstowy. Liczby dziesiętne przechowują część całkowitą i ułamkową w sposób przeznaczony do obliczeń wymagających kontrolowanej liczby miejsc po przecinku. Stosuje się je między innymi przy kwotach, stawkach, pomiarach i wartościach, dla których przewidywalne zaokrąglanie ma większe znaczenie niż maksymalna szybkość. Liczby zmiennoprzecinkowe zapisują wartość jako połączenie znaku, mantysy i wykładnika. Dzięki temu mogą reprezentować bardzo małe i bardzo duże wartości, ale ich precyzja jest ograniczona, a część ułamków dziesiętnych nie ma dokładnej reprezentacji binarnej. Zakres, precyzja i błędy obliczeńZakres typu wskazuje najmniejszą i największą wartość, którą można w nim przechować. Przekroczenie tego zakresu może prowadzić do przepełnienia, obcięcia wyniku, wyjątku albo zapisania wartości specjalnej, zależnie od języka programowania i konkretnej implementacji. Przy typach całkowitych dodanie wartości do maksymalnej liczby może spowodować przejście na wartość z przeciwnego końca zakresu, jeśli środowisko nie wykonuje kontroli przepełnienia. Precyzja oznacza, ile informacji o wartości może zostać zachowane. W typach zmiennoprzecinkowych zwiększenie zakresu nie oznacza zachowania dokładności dla każdej liczby. Standard IEEE 754 definiuje między innymi format binary32, często nazywany pojedynczą precyzją, oraz binary64, określany jako podwójna precyzja. Wartości zmiennoprzecinkowe mogą obejmować liczby nieskończone oraz specjalną wartość NaN, używaną do oznaczania wyniku niebędącego poprawną liczbą. Porównywanie takich wartości wymaga ostrożności, ponieważ wynik obliczenia może różnić się od oczekiwanego o niewielką wartość. Typowym przykładem problemu jest wielokrotne dodawanie ułamków dziesiętnych zapisanych binarnie. Wynik może zawierać drobną różnicę, mimo że matematycznie powinien być równy dokładnej wartości dziesiętnej. W programie należy więc dobierać sposób porównania do zastosowania: czasem stosuje się tolerancję, a czasem typ dziesiętny albo przechowuje kwoty jako całkowitą liczbę najmniejszych jednostek, na przykład groszy. Dobór typu w programie i podczas serwisuNieprawidłowy dobór typu liczbowego może powodować błędne wyniki, utratę części ułamkowej, nieoczekiwane zaokrąglenia lub komunikaty o przepełnieniu. Problem może pojawić się po zmianie wersji programu, imporcie danych z innego systemu albo otwarciu pliku zawierającego wartości większe niż przewidziany zakres. W diagnostyce sprawdza się wtedy definicję pól, sposób konwersji danych, ustawienia regionalne oraz to, czy przecinek i kropka są interpretowane jako właściwy separator dziesiętny. Na komputerze użytkownika warto również zweryfikować, czy problem dotyczy samego programu, pliku danych, ustawień systemowych czy uszkodzenia środowiska aplikacji. Pomocne może być odtworzenie błędu na kopii pliku, sprawdzenie logów aplikacji i porównanie wyniku dla kilku wartości granicznych. Szczególną uwagę należy zwrócić na liczby ujemne, bardzo duże wartości, zera początkowe oraz działania wykonywane między różnymi typami, ponieważ niejawna konwersja może zmienić wynik operacji. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, gdy problemy z aplikacjami, ustawieniami systemu lub działaniem oprogramowania wymagają sprawdzenia komputera. |