Уч. Финансовые системы хитры, ваша главная проблема не в математике с фиксированной точкой, проблема в ошибках округления.
У вас может быть хорошая электронная таблица, заполненная неверными расчетами, со скидками по типу клиента и НДС. Вы делаете итог, вы представляете это бухгалтеру, и он говорит, что все значения неверны. Причина: выходные данные могут быть отформатированы только с двумя десятичными разрядами, но внутренне значение имеет все десятичные разряды с плавающей запятой или двойные. и они складываются.
Вы должны знать свои финансовые показатели и решать, где будут находиться базовые значения. То есть, какие ценности будут проверять бухгалтеры (да, это требует знания бизнеса, иногда «хитрая» часть).
Перед сохранением значения в постоянной форме (база данных, файл, память ...) вы усекаете лишние десятичные знаки, которые могли бы добавить умножения и деления.
Быстрое и грязное решение для N десятичных знаков:
((double) ((int) (Значение * N * 10.0))) / 10.0
Конечно, вам необходимо точно проверить, какой тип округления требуется для ваших финансовых данных.