Mam następującą funkcję, która iteruje na tablicy, wywołuje metodę dla każdego obiektu "Zwrotu", który zwraca BigDecimal, który zawiera pewną wartość, np. 20.45:Jak dodać do BigDecimal
private String getTransactionTotals(Refund[] refunds) {
BigDecimal total = new BigDecimal(0.00);
/*
* Itterates over all the refund objects and adds
* their amount payables together to get a total
*/
for (Refund refund : refunds) {
total.add(refund.getAmountPayable());
}
total = total.setScale(2, RoundingMode.CEILING);
return total.toString();
}
Problem polega na tym, że zawsze zwraca "0.00". Wiem na pewno, że tablica, którą przekazuję, nie ma wartości null, a wartości, które zwróci jej funkcja getAmountPayable(), również nie są zerowe lub równe 0. Nie wiem, czy patrzyłem na to zbyt długo i brakuje mi tego oczywistego, jakaś pomoc byłaby bardzo doceniona.
PS - 'getAmountPayble() zwraca wartość typu BigDecimal
Możesz chcieć użyć stałej [ 'BigDecimal.ZERO'] (http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#ZERO) –