Nie przechowuj wartości pieniężnych jako zmiennoprzecinkowych, użyj typu DECIMAL lub NUMERIC:
Dokumentacja typów liczbowych MySQL
EDYCJA i wyjaśnienie:
Wartości zmiennoprzecinkowe są podatne na błędy zaokrąglania, ponieważ mają ograniczoną precyzję, więc jeśli nie zależy Ci na tym, że otrzymasz tylko 9,99 zamiast 10,00, powinieneś użyć DECIMAL/NUMERIC, ponieważ są to liczby stałoprzecinkowe, które nie mają takich problemów.