[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[Java]java中格式化输出数字[转]

上一篇:[正则替换]替换代码的一个小正则[一句话备忘]
下一篇:[asp.net+c#]格式化时所用的格式字符

添加日期:2007/10/29 16:54:52 快速返回   返回列表 阅读3981次
转贴,原址不详。
=================================
在实际工作中,常常需要设定数字的输出格式,如以百分比的形式输出,或者设定小数位数等,现稍微总结如下。

主要使用的类: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
============================================
比如DB中的数,最多有4位小数点,希望
(1)整数位3位一隔。
(2)小数多于等于两位时,原样显示。
(3)小数少于两位时,补0。

格式可以写:###,###.00##

 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved