Я понимаю, что BigDecimal является рекомендуемой наилучшей практикой для представления денежных значений в Java. Что вы используете? Есть ли библиотека получше, которую вы предпочитаете использовать вместо этого?
Переведено автоматически
Ответ 1
BigDecimal полностью. Я слышал о некоторых людях, создающих свои собственные классы Cash or Money, которые инкапсулируют денежное значение с валютой, но под оболочкой это все еще BigDecimal, вероятно, с BigDecimal.ROUND_HALF_EVEN округлением.
Редактировать: Как упоминает Дон в своем ответе, существуют проекты с открытым исходным кодом, такие как timeandmoney, и хотя я приветствую их за попытку избавить разработчиков от необходимости изобретать велосипед, я просто недостаточно уверен в библиотеке pre-alpha, чтобы использовать ее в производственной среде. Кроме того, если вы покопаетесь под капотом, вы увидите, что ониBigDecimalтоже используют.
Удобная библиотека, с которой я сталкивался ранее, - это библиотека Joda-Money. Одна из ее реализаций действительно основана на BigDecimal . Он основан на ISO-4217 спецификации для валют и может поддерживать настраиваемый список валют (загружаемый через CVS).
Эта библиотека содержит небольшое количество файлов, которые можно быстро просмотреть, если потребуются изменения. Joda-Money публикуется по лицензии Apache 2.0.