Format a BigDecimal as String with max 2 decimal digits, removing 0 on decimal part
Solution 1:
I used DecimalFormat
for formatting the BigDecimal
instead of formatting the String
, seems no problems with it.
The code is something like this:
bd = bd.setScale(2, BigDecimal.ROUND_DOWN);
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(0);
df.setGroupingUsed(false);
String result = df.format(bd);
Solution 2:
new DecimalFormat("#0.##").format(bd)
Solution 3:
The below code may help you.
protected String getLocalizedBigDecimalValue(BigDecimal input, Locale locale) {
final NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
numberFormat.setGroupingUsed(true);
numberFormat.setMaximumFractionDigits(2);
numberFormat.setMinimumFractionDigits(2);
return numberFormat.format(input);
}
Solution 4:
Use stripTrailingZeros()
.
This article should help you.
Solution 5:
If its money use:
NumberFormat.getNumberInstance(java.util.Locale.US).format(bd)