Java NumberFormat 类的详解及实例

概要:

NumberFormat 表示数字的格式化类, 即:可以按照本地的风格习惯进行数字的显示。

此类的定义如下:

 public abstract class NumberFormat extends Format

MessageFormat 、DateFormat 、NumberFormat 是 Format 三个常用的子类,如果要想进一步完成一个好的国际化程序,则肯定需要同时使用这样三个类完成,根据不同的国家显示贷币的形式。

此类还是在Java.text 包中,所以直接导入此包即可。

import java.text.* ;
public class NumberFormatDemo01{
  public static void main(String args[]){
    NumberFormat nf = null ;    // 声明一个NumberFormat对象
    nf = NumberFormat.getInstance() ;  // 得到默认的数字格式化显示 
    System.out.println("格式化之后的数字:" + nf.format(10000000)) ; 
    System.out.println("格式化之后的数字:" + nf.format(1000.345)) ; 
  }
};
DecimalFormat 的基本使用

是NumberFormat 类的子类,主要的作用是用来格式化数字使用,当然,在格式化数字的时候要比直接使用NumberFormat 更加方便,因为可以直接指定按用户自定义方式进行格式化操作,与之前讲的SimpleDateFormat类似,如果要想进行自定义格式化操作,则必须指定格式化操作的模板。

 

  DecimalFormat df1 = new DecimalFormat("0.0");   

  DecimalFormat df2 = new DecimalFormat("#.#");   

 

  DecimalFormat df3 = new DecimalFormat("000.000");   

  DecimalFormat df4 = new DecimalFormat("###.###"); 

 

  System.out.println(df1.format(12.34));   

  System.out.println(df2.format(12.34));   

 

  System.out.println(df3.format(12.34));   

  System.out.println(df4.format(12.34));   

 运行结果: 
12.3 
12.3 
012.340 
12.34  

  DecimalFormat format = new DecimalFormat("###,####.000");   

  System.out.println(format.format(111111123456.1227222)); 

  

  Locale.setDefault(Locale.US);   

  DecimalFormat usFormat = new DecimalFormat("###,###.000");   

  System.out.println(usFormat.format(111111123456.1227222));   

 

  DecimalFormat addPattenFormat = new DecimalFormat();   

  addPattenFormat.applyPattern("##,###.000");   

  System.out.println(addPattenFormat.format(111111123456.1227));   

 

  DecimalFormat zhiFormat = new DecimalFormat();   

  zhiFormat.applyPattern("0.000E0000");   

  System.out.println(zhiFormat.format(10000));   

  System.out.println(zhiFormat.format(12345678.345));   

 

  DecimalFormat percentFormat = new DecimalFormat();   

  percentFormat.applyPattern("#0.000%");   

  System.out.println(percentFormat.format(0.3052222));   

 运行结果 :
1111,1112,3456.123 
111,111,123,456.123 
111,111,123,456.123 
1.000E0004 
1.235E0007 
30.522% 

posted on 2018-06-01 15:44  腾飞的鹰  阅读(3410)  评论(0)    收藏  举报

导航