方案一:
DecimalFormat df2 =new DecimalFormat("0.00");
String str2 =df2.format(new BigDecimal("0.00"));
System.out.println(str2); // 0.00
方案二:#0.00% 表示保留两位小数,.后几个零就是保留几位小数 %号表示会转成百分率。
DecimalFormat df2 =new DecimalFormat("#0.00%");
String str2 =df2.format(new BigDecimal("5.00")); // 500%
System.out.println(str2);
String str =df2.format(new BigDecimal("0.00")); // 0.00%
System.out.println(str);
方案三:
String result = String.format("%.2f", new BigDecimal("5.2122"));
System.out.println(result); // 5.21
方案四:不四舍五入
public static void main(String[] args) {
BigDecimal money= new BigDecimal("68686887");
//方法一
DecimalFormat decimal = new DecimalFormat("#0.00");
decimal.setRoundingMode(RoundingMode.DOWN);
System.out.println(decimal.format(money));
//方法二
BigDecimal bigDecimal = new BigDecimal(money).setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(bigDecimal.toString());
}
金额转成 “元” 或者 “万元” 展示
private static String parseDecimal(BigDecimal money) {
if (ObjectUtils.isEmpty(money)) {
return null;
}
if (money.compareTo(new BigDecimal("10000")) < 0) {
return money.toString() + YUAN;
}
if (money.compareTo(new BigDecimal("10000")) >= 0) {
// 转换为万元(除以10000)
money = money.divide(new BigDecimal("10000"));
// 保留两位小数
DecimalFormat formater = new DecimalFormat("#0.00");
formater.setRoundingMode(RoundingMode.DOWN);
return formater.format(money) + WAN;
}
return null;
}
去掉末尾多余的0
money.stripTrailingZeros().toPlainString();