Насколько вероятно, что BigDecimal вызовет проблемы с памятью для POS-программы? - PullRequest
0 голосов
/ 31 декабря 2018

Я понимаю, что BigDecimal является наиболее точным способом выражения валюты, потому что обработка значений валюты как типа данных с плавающей запятой имеет тенденцию вызывать ошибки округления.Однако я также понимаю, что расчеты BigDecimal требуют больше памяти.Тем не менее, является ли использование BigDecimal вместо float или double действительно лучшей практикой для программ, работающих с валютными ценностями?Если я создаю программу, которая распечатывает детализированную квитанцию ​​для каждого заказа в ресторане, с большей вероятностью не хватит памяти, если я использую BigDecimal, или с большей вероятностью получу ошибки округления, если вместо этого я использую значения с плавающей запятой?

(Примечание: «Что делать с производительностью Java BigDecimal?» - вопрос немного похожий, но меня больше беспокоит наименее рискованный вариант для относительно простой транзакции быстрого питания.)

1 Ответ

0 голосов
/ 01 января 2019

Если ваша программа не имеет дело с миллионами BigDecimals одновременно, вы действительно не заметите разницы в потреблении памяти.

И если вы запускаете сервис с такой минимальной производительностью, вы, несомненно, можете себе позволитькупить лишний гигабайт оперативной памяти вместо судебных исков за неправильные расчеты; -).

...