Хранить денежный эквивалент можно, используя младшие разряды типа int для дробной части. Наиболее распространенный способ — хранить сумму в минимально возможной единице (например, копейках для рублей, центах для долларов).
Пример:
Сумма $123.45 может быть представлена как 12345 копеек.
c
или напрямую:
c
При выполнении операций:
Сложение:
c
Вычитание:
c
Для вывода и конвертации обратно в рубли/доллары:
c
Преимущества:
float, double).Недостатки:
int. Для больших сумм или валют с высокой стоимостью единицы может потребоваться long long.Пример расчета процентов:
c
Этот метод подходит для большинства финансовых расчетов там, где требуется высокая точность при относительно простых арифметических операциях. Для более сложных сценариев сrounding rules, различными валютами и их курсами, может потребоваться специализированные библиотеки или типы данных (например, decimal в других языках, или пользовательские реализации).