DecimalFormat

来源:互联网 发布:idea新建普通java项目 编辑:程序博客网 时间:2024/05/17 06:26

DecimalFormat

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。能够做到日常所需的大部分功能。

基本功能

DecimalFormat里面封装了一些对数据最基本的操作。包括对数据三位一组的间隔分组,小数位保留多少位,整数位最多现实多少位能。

DecimalFormat df = (DecimalFormat) DecimalFormat.getInstance();        double d = 123456.5555;        // 默认保留三位小数,并在整数位的时候三位添加一个间隔符        System.out.println(df.format(d));        // 最大的小数位数,四舍五入        df.setMaximumFractionDigits(2);        // 最小的小数位数,不够的添0        df.setMinimumFractionDigits(2);        System.out.println(df.format(d));        // 最小的整数位数,位数不够补0        df.setMinimumIntegerDigits(15);        System.out.println(df.format(d));        // 最大的整数位数,多余的舍去        df.setMaximumIntegerDigits(1);        System.out.println(df.format(d));        df = (DecimalFormat) DecimalFormat.getInstance();        // 设置整数位每四个一个分组        df.setGroupingSize(4);        System.out.println(df.format(d));        DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance();        // 设置小数点的分隔符        dfs.setDecimalSeparator('s');        // 设置每一分组的分隔符        dfs.setGroupingSeparator('a');        df.setDecimalFormatSymbols(dfs);        System.out.println(df.format(d));        // 取消分组        df.setGroupingUsed(false);        System.out.println(df.format(d));

结果

123,456.556123,456.56000,000,000,123,456.566.5612,3456.55612a3456s556123456s556

扩展功能

该DecimalFormat 中可以通过#,0,%字符对数字进行特殊的格式化。
- #表示字符安装#位数进行匹配,如果在最后或者整数的最前有0会被舍去。
- 0表示强制匹配,如果位数不够,则会强制补0;
- % 表示将数据转化成百分比数据

        double a = 1.220;        double b = 11.22;        double c = 0.22;        DecimalFormat df = (DecimalFormat) DecimalFormat.getInstance();        df.applyPattern("00.00%");        System.out.println(df.format(a));        System.out.println(df.format(b));        System.out.println(df.format(c));        df.applyPattern("##.##%");        System.out.println(df.format(a));        System.out.println(df.format(b));        System.out.println(df.format(c));
122.00%1122.00%22.00%122%1122%22%
0 0