Java的NumberFormat介绍

---------------------------------------------------------------
java.text.NumberFormat类有三个方法可以产生下列数据的标准格式化器:
数字
货币
百分数


---------------------------------------------------------------
创建格式化器(默认地区Local格式):
NumberFormat.getNumberInstance();
NumberFormat.getCurrencyInstance();
NumberFormat.getPercentInstance();


---------------------------------------------------------------
例题:
double dbl=10000.0/3;
NumberFormat formatter=NumberFormat.getNumberInstance();
String s=formatter.format(x);
System.out.println(s);


---------------------------------------------------------------
设定整数或小数部分所显示的最少和最多位数,可以使用NumberFormat类
的方法:
setMinimumIntegerDigits(int)
setMinimumFractionDigits(int)
setMaximumIntegerDigits(int)
setMaximumFractionDigits(int)


设定小数部分的最多位很有用处。如果小数部分丢失的第一位数字大于等于5,
那么显示的最后一位会增1(四舍五入)。如果要显示尾随的零,可以把小数部分的最少位等于最多位。
如果不想显示,可以把小数部分的最少位设定为0或不设定。


指定最多位整数相当危险,显示值将会被截断,产生一个错误的值。


---------------------------------------------------------------
测试例题:


文件名TestNumberFormat.java
--------------------------------------------------------
[java]  view plain  copy
  1. <pre name="code" class="java">package com.zhang;  
  2. import java.text.NumberFormat;  
  3. import java.util.Locale;  
  4. /** 
  5.  * <p>NumberFormat 是所有数值格式的抽象基类的应用</p> 
  6.  * @作者: zhangjunshuai 
  7.  * @日期: 2013-1-31 下午03:16:32  
  8.  * @描述: 
  9.  */  
  10. public class NumberFormatTest {  
  11.           
  12.          /** 
  13.           * 说明: 
  14.           * 1、NumberFormat.getInstance  返回当前缺省语言环境的缺省数值格式; 
  15.           * 2、NumberFormat.getCurrencyInstance(此处填写语言环境,如:Locale.US;可为空,为当前系统语言环境) 返回语言环境的金融格式 
  16.           * 3、NumberFormat.getPercentInstance(此处填写语言环境,如:Locale.US;可为空,为当前系统语言环境) 返回语言环境的百分比格式 
  17.           * 4、NumberFormat.getNumberInstance(此处填写语言环境,如:Locale.US;可为空,为当前系统语言环境) 返回语言环境的数值格式 
  18.           * 5、setNinimumFractionDigits()  设置数值的小数部分允许的最小位数 
  19.           * 6、setMaximumFractionDigits()  设置数值的小数部分允许的最大位数 
  20.           * 7、setMaximumIntegerDigits()  设置数值的整数部分允许的最大位数 
  21.           * 8、setMinimumIntegerDigits()  设置数值的整数部分允许的最大位数 
  22.           */  
  23.          public static void main(String[] args) {  
  24.                   // TODO Auto-generated method stub  
  25.                   Double myNumber=23323.3323232323;  
  26.                   Double test=0.3434;  
  27.                   //getInstance()   
  28.                   //返回当前缺省语言环境的缺省数值格式。  
  29.                   String myString = NumberFormat.getInstance().format(myNumber);  
  30.                   System.out.println(myString);  
  31.                   //getCurrencyInstance()返回当前缺省语言环境的通用格式  
  32.                   //myString = NumberFormat.getCurrencyInstance(Locale.US).format(myNumber);   
  33.                   myString = NumberFormat.getCurrencyInstance().format(myNumber);  
  34.                   System.out.println("NumberFormat.getCurrencyInstance:"+myString);  
  35.                   //getNumberInstance() 返回当前缺省语言环境的通用数值格式。   
  36.                   myString = NumberFormat.getNumberInstance().format(myNumber);   
  37.                   System.out.println("NumberFormat.getNumberInstance():"+myString);  
  38.                   //getPercentInstance()  返回当前缺省语言环境的百分比格式。  
  39.                   myString = NumberFormat.getPercentInstance().format(test);   
  40.                   System.out.println("NumberFormat.getPercentInstance():"+myString);  
  41.                   NumberFormat format = NumberFormat.getInstance();  
  42.                   format.setMinimumFractionDigits( 3 );//setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数。   
  43.                   format.setMaximumFractionDigits(5);//setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数。  
  44.                   format.setMaximumIntegerDigits( 10 );//setMaximumIntegerDigits(int)  设置数值的整数部分允许的最大位数。   
  45.                   format.setMinimumIntegerDigits(0);//setMinimumIntegerDigits(int)  设置数值的整数部分允许的最小位数.  
  46.                   System.out.println(format.format(2132323213.23266666666));  
  47.          }  
  48.   
  49. }  
  50. </pre><br>  
  51. <br>  
  52. <pre></pre>  
  53. <br>  
  54. <br>  
  55. <br>  
  56. <br>  
  57. //================= 运行结果如下 =======================<br>  
  58. 23,323.332<br>  
  59. NumberFormat.getCurrencyInstance:¥23,323.33<br>  
  60. NumberFormat.getNumberInstance():23,323.332<br>  
  61. NumberFormat.getPercentInstance():34%<br>  
  62. 2,132,323,213.23267  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值