Теория
Почему нельзя хранить деньги во float?
Двоичный float не представляет многие десятичные дроби точно, поэтому накопление операций может дать нежелательные ошибки округления. Для денежных расчётов обычно выбирают целые минимальные единицы или decimal.
Читать ответ