JAVA的数据格式化输出

半转帖

在实际工作中,常常需要设定数字的输出格式,如以百分比的形式输出,或者设定小数位数等,现稍微总结如下。
主要使用的类: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

 

其中 0 表示如果该位没有数字,则添0;
         # 表示如果该位没有数字就忽略;

关于科学计数的一点心得:
当我们用BigInteger或 BigDecimal类来实现数的操作的时候,当数字过大,打印出来的往往是用科学计数来表示的。
那么这两个类中都有函数toPainString()可以实现去掉科学计数。呵呵
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值