sherry sherry - 29 days ago 12
Java Question

How do I round a double to two decimal places in Java?

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.

Rob Rob
Answer

Are you doing money? Creating a string and then converting it back is pretty loopy.

Use BigDecimal. This has been discussed quite extensively. You should have a money class and the amount should be a BigDecimal.

Even if you're not doing money, consider BigDecimal.