在实际工作中,常常需要设定数字的输出格式,如以百分比的形式输出,或者设定小数位数等,先稍微总结如下。
主要使用的类:java.text.DecimalFormat
1。实例化对象,可以用如下两种方法:
DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
因为DecimalFormat继承自NumberFormat。
2。设定小数位数
系统默认小数位数为3,如:
  DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
  System.out.println(df.format(12.3456789));
输出:12.346
现在可以通过如下方法把小数为设为两位:
  df.setMaximumFractionDigits(2);
  System.out.println(df.format(12.3456789));
则输出为:12.35
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));
输出:1.20

posted on 2006-09-19 22:29 扬州梦 阅读(184) 评论(1)  编辑  收藏 所属分类: java
评论
  • # re: 格式化输出数字
    祎恬凡
    Posted @ 2006-09-24 07:41
    这个不错,我曾经还有bigDecimal来写一个自己使用的四舍五入的方法呢。  回复  更多评论   

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

统计