数字格式化--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也可以保留两位小数,四舍五入

四舍五入的常量:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值