Zobacz, co każdy informatyk powinien wiedzieć o arytmetyce zmiennoprzecinkowej.
Liczby zmiennoprzecinkowe w komputerach nie reprezentują dokładnie ułamków dziesiętnych. Zamiast tego reprezentują binarny ułamki. Większość liczb ułamkowych nie ma dokładnej reprezentacji jako ułamek binarny, więc następuje pewne zaokrąglanie. Kiedy tak zaokrąglony ułamek binarny zostanie przetłumaczony z powrotem na ułamek dziesiętny, uzyskasz efekt, który opisujesz.
Do przechowywania wartości pieniężnych bazy danych SQL zwykle zapewniają typ DECIMAL, który przechowuje dokładne cyfry dziesiętne. Ten format jest nieco mniej wydajny dla komputerów, ale jest całkiem przydatny, gdy chcesz uniknąć błędów zaokrąglania dziesiętnych.