java数据格式处理

概述

记录一下常用的数据格式处理。千分位分隔符、四舍五入。

代码

复制代码
/**
 * 数据格式化工具类
 * @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);
    }

}
相关推荐
大闲在人几秒前
25. 连续盘点系统(Q-R 策略):总成本优化与基于缺货成本的再订货点设定
开发语言·数据分析·供应链管理·智能制造·工业工程
skywalk8163几秒前
介绍一下QuantConnect Lean(python 15k star)
开发语言·python·量化
不凡而大米、1 分钟前
报错:传入的请求具有过多的参数。该服务器支持最多2100个参数
java·开发语言·mybatis
lcz-20004 分钟前
Silero-VAD模型自定义微调
python·音视频·vad·silero
木风小助理5 分钟前
QPS监控:SpringBoot应用性能监控的必要性与实践
java·spring boot·后端
打工的小王6 分钟前
单例模式的实现
java·开发语言·单例模式
strive-debug6 分钟前
cpp篇~~类和对象
开发语言·c++
是宇写的啊6 分钟前
单例模式-阻塞队列
java·开发语言·单例模式
进击的小头7 分钟前
Git在C项目中的分支策略和规范
c语言·开发语言·git
u0104058368 分钟前
Java中的单例模式详解
java·开发语言·单例模式