Почему нельзя хранить деньги во float?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Например, сумму в копейках хранят целым вместе с валютой. Для процентов и деления задают точность, момент и правило округления; разным валютам могут соответствовать разные масштабы. В БД используют подходящий NUMERIC/DECIMAL, а в приложении — совместимую арифметику, не преобразуя точное значение обратно во float.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку