概述
记录一下常用的数据格式处理。千分位分隔符、四舍五入。
代码
/*** 数据格式化工具类* @author *** @since ***/
public class DataFormatUtil {private DataFormatUtil() {throw new IllegalStateException("工具类不要实例化");}public static String format(Double value){return format(value, 2);}public static String format(BigDecimal value){return format(value, 2);}/*** 千分位分隔符,四舍五入,保留位数* @param value 数值* @param scale 保留小数位数* @return 格式化后的数值*/public static String format(BigDecimal value, int scale){if(value == null){return "";}if(scale < 0){throw new IllegalArgumentException("保留小数位数不能小于0");}DecimalFormatSymbols symbols = new DecimalFormatSymbols();symbols.setGroupingSeparator(',');symbols.setDecimalSeparator('.');DecimalFormat decimalFormat = new DecimalFormat("#,##0.00", symbols);decimalFormat.setRoundingMode(RoundingMode.HALF_UP);decimalFormat.setMinimumFractionDigits(scale);decimalFormat.setMaximumFractionDigits(scale);return decimalFormat.format(value);}/*** 千分位分隔符,四舍五入,保留位数* @param value 数值* @param places 保留小数位数* @return 格式化后的数值*/public static String format(Double value, int places) {if(value == null){return "";}if(places < 0){throw new IllegalArgumentException("保留小数位数不能小于0");}DecimalFormat decimalFormat = new DecimalFormat((places == 0 ? "#,##0" : "#,##0.") + StringUtils.repeat("0", places));return decimalFormat.format(value);}}