1,#与0
public static void main(String[] args) { DecimalFormat df1 = new DecimalFormat("#"); System.out.println(df1.format(888.88888));//889 DecimalFormat df2 = new DecimalFormat("#####"); System.out.println(df2.format(888.88888));//889 DecimalFormat df3 = new DecimalFormat("0"); System.out.println(df3.format(888.88888));//889 DecimalFormat df4 = new DecimalFormat("00000"); System.out.println(df4.format(888.88888));//00889 }
表示整数部分:一个#和多个#一样,都表示所有整数部分,但0比较特殊,当0的个数多于数字本身的时候,会用0补齐。
public static void main(String[] args) { DecimalFormat df1 = new DecimalFormat("#.#"); System.out.println(df1.format(888.88888));//888.9 DecimalFormat df2 = new DecimalFormat("#.###"); System.out.println(df2.format(888.88888));//888.889 DecimalFormat df3 = new DecimalFormat("#.#######"); System.out.println(df3.format(888.88888));//888.88888 DecimalFormat df4 = new DecimalFormat("0.0"); System.out.println(df4.format(888.88888));//888.9 DecimalFormat df5 = new DecimalFormat("0.000"); System.out.println(df5.format(888.88888));//888.889 DecimalFormat df6 = new DecimalFormat("0.0000000"); System.out.println(df6.format(888.88888));//888.8888800 }
表示小数部分,一个#表示一位小数,一个0也表示一位小数,但当0的个数多于小数部分的时候,会用0补齐。(均四舍五入)
2,分隔
public static void main(String[] args) { DecimalFormat df1 = new DecimalFormat(",###.#"); System.out.println(df1.format(8888888.88888));//8,888,888.9 DecimalFormat df2 = new DecimalFormat("#####,###.#"); System.out.println(df2.format(8888888.88888));//8,888,888.9 }
用逗号分隔整数部分,逗号后面有几个#表示每个几位用逗号分隔,与逗号前面的#无关
3 BigDecimal
public static void main(String[] args) { DecimalFormat df5 = new DecimalFormat("#.00"); DecimalFormat df6 = new DecimalFormat("0.00"); System.out.println(df5.format(new BigDecimal("0.13")));//.13 System.out.println(df6.format(new BigDecimal("0.13")));//0.13 }
注意:BigDecimal整数部分为0的时候,整数format用#,小数format用0会导致没有0占位显示为“.13”