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.
Just use: (easy as pie)
double number = 651.5176515121351; number = Math.round(number * 100); number = number/100;
The output will be 651.52
Are you working with 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 working with money, consider BigDecimal
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With