0 : if value of this BigDecimal is equal to that of BigDecimal object passed as parameter.
1 : if value of this BigDecimal is greater than that of BigDecimal object passed as parameter.
-1 : if value of this BigDecimal is less than that of BigDecimal object passed as parameter.
if (accountingInvoice.getRetention().getAmount().compareTo(BigDecimal.ZERO) == 1) {
hasRetention = true;
}
BigDecimal sum = foundCostCenters
.stream()
.map( p -> p.getPercentage())
.reduce(BigDecimal.ZERO, BigDecimal::add);
List<BigDecimal> list = Arrays.asList(new BigDecimal(10.333), //
new BigDecimal(14.333));
BigDecimal result = list.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
Want:
Amount is: 5.0001 and formatted to: 5.00
Amount is: 999999999.999999 and formatted to: 999,999,999.99
Amount is: 1000.4999 and formatted to: 1,000.49
Amount is: 9999.089 and formatted to: 9,999.08
Amount is: 0.19999 and formatted to: 0.19
Amount is: 123456.99999999 and formatted to: 123,456.99
solution:
DecimalFormat decimalFormat = new DecimalFormat("#,##0.000");
decimalFormat.format(BigDecimal(123456,78)); //will output 123.456,78 - depending on Locale
scale two decimals
con setScale y con RoundingMode.HALF_UP