千位格式化
public static String formatting(BigDecimal amount) {
int decimalPlaces = amount.stripTrailingZeros().scale();
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(',');
symbols.setDecimalSeparator('.');
DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setDecimalFormatSymbols(symbols);
decimalFormat.setGroupingSize(3);
decimalFormat.setMinimumFractionDigits(decimalPlaces);
return decimalFormat.format(amount);
}
测试
@Test
public void test() {
String amount = "10000000000330104525.445757";
String formatting = MoneyFormatUtils.formatting(new BigDecimal(amount));
log.info(">>> amount = {}", formatting);
}
结果
2023-09-18 11:27:39.029 [main] INFO c.p.comm.DemoTest - [test,52] - >>> amount = 10,000,000,000,330,104,525.445757
Process finished with exit code 0
补充说明
amount.stripTrailingZeros().scale()