数字格式化--Java

DecimalFormatNumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。 

实例化

DecimalFormat df = (DecimalFormat) NumberFormat.getInstance();

DecimalFormat df = (DecimalFormat) DeciamlFormat.getInstance();


常用方法

 void setMaximumFractionDigits(int newValue) 
          设置某个数的小数部分中所允许的最大数字位数。 
 void setMaximumIntegerDigits(int newValue) 
          设置某个数字的整数部分中所允许的最大数字位数。 
 void setMinimumFractionDigits(int newValue) 
          设置某个数的小数部分中所允许的最小数字位数。 
 void setMinimumIntegerDigits(int newValue) 
          设置某个数字的整数部分中所允许的最小数字位数。 
 void setMultiplier(int newValue) 
          设置百分数、千分数和类似格式中使用的乘数。 

 void setRoundingMode(RoundingMode.HALF_UP);

          设置四舍五入

设置模板

如果模板中含有#,意思是指这个#号可代表一个或多个数字如果该位的数字是零的话则省略该位。

例如:3。将数字转化为百分比输出,有如下两种方法: 
(1) 
  df.applyPattern("##.##%"); 
    System.out.println(df.format(12.3456789)); 
    System.out.println(df.format(1)); 
    System.out.println(df.format(0.015)); 
输出分别为:1234.57%    100%      1.5% 
(2) 
    df.setMaximumFractionDigits(2); 
    System.out.println(df.format(12.3456789*100)+"%"); 
    System.out.println(df.format(1*100)+"%"); 
    System.out.println(df.format(0.015*100)+"%"); 
输出分别为: 
1,234.57%     100%     1.5% 
4。设置分组大小 
     DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 
df1.setGroupingSize(2); 
    System.out.println(df1.format(123456789)); 
输出:1,23,45,67,89 
还可以通过df1.setGroupingUsed(false);来禁用分组设置,如: 
     DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 
    df1.setGroupingSize(2); 
df1.setGroupingUsed(false); 
    System.out.println(df1.format(123456789)); 
输出:123456789 
5。设置小数为必须为2位 
    DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance(); 
  df2.applyPattern("0.00"); 
    System.out.println(df2.format(1.2)); 

注意:

Math.round(1.23556*100)/100.0也可以保留两位小数,四舍五入

四舍五入的常量:


你可能感兴趣的:(java,格式化,java)