I want to format BigDecimal Numbers with comma and 2 decimal points. e.g.
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
BigDecimal doesn't have a dot or a comma. You can parse a String which contains a comma and you can produce a string which contains a comma from a BigDecimal, but that doesn't mean the BigDecimal contains it.
Just use %. 2f as the format specifier. This will make the Java printf format a double to two decimal places.
math. BigDecimal. round(MathContext m) is an inbuilt method in Java that returns a BigDecimal value rounded according to the MathContext settings. If the precision setting is 0 then no rounding takes place.
You should use DecimalFormat
:
val df: DecimalFormat = DecimalFormat("#,##0.000")
df.decimalFormatSymbols = DecimalFormatSymbols(Locale.getDefault())
df.format(BigDecimal(123456,78)); //will output 123.456,78 - depending on Locale
This should be enough to get the results.
String.format("%,.2f", amount.setScale(2, RoundingMode.DOWN));
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