Java DecimalFormat 用法

艾陽丶發表於2017-04-26

在實際開發中,需要把數字顯示固定一種格式,比如浮點型0.22或者千分位22,222,222,這時就可以用到java的DecimalFormat類去格式化。

一:介紹

DecimalFormat 是 NumberFormat 的一個具體子類,用於格式化十進位制數字。DecimalFormat 包含一個模式 和一組符號

符號含義

0 一個數字
  # 一個數字,不包括 0
  . 小數的分隔符的佔位符
  , 分組分隔符的佔位符
  ; 分隔格式。
  - 預設負數字首。
  % 乘以 100 和作為百分比顯示
  ? 乘以 1000 和作為千進位制貨幣符顯示;用貨幣符號代替;如果雙寫,用國際貨幣符號代替。如果出現在一個模式中,用貨幣十進位制分隔符代替十進位制分隔符。
  X 字首或字尾中使用的任何其它字元,用來引用字首或字尾中的特殊字元。
  例子:
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
     */


二:用法
importjava.text.DecimalFormat;  
    
publicclassTestNumberFormat{  
    
  publicstaticvoidmain(String[]args){  
    doublepi=3.1415927; //圓周率  
    //取一位整數  
    System.out.println(newDecimalFormat("0").format(pi));   //3  
    //取一位整數和兩位小數  
    System.out.println(newDecimalFormat("0.00").format(pi)); //3.14  
    //取兩位整數和三位小數,整數不足部分以0填補。  
    System.out.println(new DecimalFormat("00.000").format(pi));// 03.142  
    //取所有整數部分  
    System.out.println(newDecimalFormat("#").format(pi));   //3  
    //以百分比方式計數,並取兩位小數  
    System.out.println(new DecimalFormat("#.##%").format(pi)); //314.16%  
    
    longc=299792458;  //光速  
    //顯示為科學計數法,並取五位小數  
    System.out.println(newDecimalFormat("#.#####E0").format(c)); //2.99792E8  
    //顯示為兩位整數的科學計數法,並取四位小數  
    System.out.println(newDecimalFormat("00.####E0").format(c)); //29.9792E7  
    //每三位以逗號進行分隔。  
    System.out.println(newDecimalFormat(",###").format(c));   //299,792,458  
    //將格式嵌入文字  
    System.out.println(newDecimalFormat("每秒###\米。").format(c));  
  }  
}  

DecimalFormat 類主要靠 # 和 0 兩種佔位符號來指定數字長度。0 表示如果位數不足則以 0 填充,# 表示只要有可能就把數字拉上這個位置。上面的例子包含了差不多所有的基本用法,如果你想了解更多,請參考 DecimalFormat 類的文件。

相關文章