DecimalFormat

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.556
123,456.56
000,000,000,123,456.56
6.56
12,3456.556
12a3456s556
123456s556

扩展功能

该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%

你可能感兴趣的:(format,DECIMAL,保留两位小数,数据格式化,整数格式化)