Myślę, że nazywa się to precyzją zmiennoprzecinkową. Można go znaleźć w prawie wszystkich językach programowania, a także w bazie danych. Dzieje się tak dlatego, że dane są przechowywane tylko z pewną precyzją i tak naprawdę to ustawiasz jako 8.31
prawdopodobnie nie jest 8.31
ale na przykład 8.31631312381813
a kiedy pomnożymy ją i zatrzymamy, może to spowodować pojawienie się innej wartości.
Na stronie dokumentacji serwera SQL możesz przeczytać:
W innych systemach bazodanowych ten sam problem występuje. Na przykład na stronie mysql możesz przeczytać: