Удвоить мои деньги: моя структура использует двойные денежные суммы

Я унаследовал проект, в котором денежные суммы используют тип double.

Хуже того, фреймворк, который он использует, и собственные классы фреймворка используют double для денег.

ORM фреймворка также обрабатывает извлечение значений из (и сохранение в) базы данных. В базе данных денежные значения имеют номер типа (19, 7), но структура ORM сопоставляет их с двойниками.

Если не считать полного обхода классов фреймворка и ORM, Могу ли я что-нибудь сделать для точного расчета денежных величин?

Изменить: да, я знаю, что следует использовать BigDecimal. Проблема в том, что я тесно связан с фреймворком, в котором, например, класс framework.commerce.pricing.ItemPriceInfo имеет члены double mRawTotalPrice; и двойной mListPrice. Собственный код приложения моей компании расширяет, например, этот ItemPriceInfoClass.

На самом деле, я не могу сказать своей компании: «отказаться от двух лет работы и потраченных сотен тысяч долларов, основываясь на коде на этой структуре, из-за округления. ошибки "

9
задан tpdi 5 October 2010 в 20:42
поделиться