Я хочу сделать некоторые расчеты с деньгами.Чтобы предотвратить ошибки округления, я решил использовать BigDecimal вместо double или float.Теперь я думаю, что это не очень хорошая идея, потому что это чрезвычайно усложняет вычисления.
Я создал класс с именем Euro, который расширяется от BigDecimal, чтобы переопределить методы toString и equals.
Теперь, если я хочу добавить число к объекту Euro, я бы сделал это следующим образом:
Euro sum = (new Euro(10)).add(new Euro(15));
Проблема здесь в том, что add (...) возвращает объект из класса BigDecimal, который я не могуприведение к евро, поэтому я добавил это к классу евро:
public Euro add(Euro euro){
return new Euro(euro.add((BigDecimal) this).floatValue());
}
Что я могу сделать сейчас, вместо того, чтобы переписывать все методы из BigDecimal в евро?Я думаю, лучшее решение - это использовать целое число для центов вместо BigDecimal, потому что тогда я могу написать
int sumCents = 1000 + 1500;
вместо долгосрочного значения выше.