Java数字格式化DecimalFormat详解

DecimalFormat是用来对数字进行格式化的,DecimalFormat是NumberFormat的子类,不仅具备NumberFormat格式化数字的方法,还定义了更多的格式化数字的方法。
DecimalFormat定义了一些符号,作为格式化字符串的模板,其中主要用的有#和0。

0:表示整数或小数部分时,实际数字整数超过模板位数不处理,不足则最左侧补0;小数部分超过模板位数截取,不足补0。
#:表示整数或小数部分时,实际数字整数位数超过或不够不做处理;小数位数超过模板位数截取,不足不补足。

看demo:

package com.itzhimei;

import java.text.DecimalFormat;
import java.text.ParseException;

public class TestDecimalFormat {

    public static void main(String[] args) throws ParseException {
        DecimalFormat df = new DecimalFormat("00.00000");
        String format = df.format(12345.12);
        System.out.println(format);
        /* 输出:整数位超过模板不处理,小数位不足则补0
        12345.12000
         */

        DecimalFormat df2 = new DecimalFormat("##.######");
        String format2 = df2.format(12345.12);
        System.out.println(format2);
        /* 输出:整数位超过模板不处理,小数位不足不处理
        12345.12
         */

        DecimalFormat df3 = new DecimalFormat("000000.0");
        String format3 = df3.format(12345.12);
        System.out.println(format3);
        /* 输出:整数位少于模板则补0
        012345.1
         */


        DecimalFormat df4 = new DecimalFormat("######.#");
        String format4 = df4.format(12345.12);
        System.out.println(format4);
        /* 输出:整数位少于模板位数不处理,小数位大于模板位数截取
        12345.1
         */
    }
}