Должен ли я использовать MathContext.DECIMAL32
или MathContext.DECIMAL64
? Я посмотрел на documentation, но я не мог понять, когда использовать.MathContext.DECIMAL32 vs MathContext.DECIMAL64, какой из них использовать и почему?
Я использую BigDecimal для представления процента, который я хочу применить к сумме денег. Что-то вроде этого:
...
final MathContext mc = MathContext.DECIMAL32;
BigDecimal amount = getAmount(args);
float percent = getPercent().floatValue();
BigDecimal percentAsBd = new BigDecimal(percent/100.f, mc).setScale(4, RoundingMode.HALF_UP);
BigDecimal threshold = amount.multiply(percentAsBd);
...
Я использую оракул Java 1.8, Ubuntu 14.04, ядро i7 Intel (64bit)
Любая конкретная причина, вы чувствуете, что вы должны использовать один из них, а не построения MathContext который соответствует вашим требованиям, например округление? –
@PatriciaShanahan Я предполагаю, что меня беспокоит его совместимость с встроенным float java, который, как я полагаю, 32 бит. – has981
Собственный поплавок Java является двоичным, а не десятичным, и гораздо менее подходит, чем BigDecimal для представления процентов. Я не думаю, что его размер имеет значение. –