This is what I did to round a double to 2 decimal places:
amount = roundTwoDecimals(amount);
public double roundTwoDecimals(double d) {
DecimalFormat twoDForm = new DecimalFormat("#.##");
return Double.valueOf(twoDForm.format(d));
}
This works great if the amount = 25.3569 or something like that, but if the amount = 25.00 or the amount = 25.0, then I get 25.0! What I want is both rounding as well as formatting to 2 decimal places.
Are you working with money? Creating a
Stringand then converting it back is pretty loopy.Use
BigDecimal. This has been discussed quite extensively. You should have aMoneyclass and the amount should be aBigDecimal.Even if you’re not working with money, consider
BigDecimal.