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);
    }

}
相关推荐
Cosmoshhhyyy3 分钟前
《Effective Java》解读第40条:坚持使用Override注解
java·开发语言
ValhallaCoder7 分钟前
hot100-二分查找
数据结构·python·算法·二分查找
Suryxin.8 分钟前
从0开始复现nano-vllm「llm_engine.py」
人工智能·python·深度学习·ai·vllm
lsx20240610 分钟前
HTML 媒体(Media)详解
开发语言
PieroPc11 分钟前
用python 写的 Gitee 数据备份工具
开发语言·python·gitee
sycmancia11 分钟前
C++——类的真正形态、构造函数的调用
开发语言·c++
csbysj202011 分钟前
Bootstrap 多媒体对象
开发语言
电饭叔11 分钟前
intVar 说明
python
癫狂的兔子15 分钟前
【Python】【机器学习】十大算法简介与应用
python·算法·机器学习
桂花很香,旭很美15 分钟前
[7天实战入门Go语言后端] Day 7:综合实战——小型 REST API 与优雅关闭
开发语言·后端·golang