數字格式化


數字的格式化在解決實際問題時使用非常普遍,比如表示某超市的商品價格需要保留兩位有效數字等。Java主要對浮點型數據進行數字格式化操作,其中浮點型數據包括double型和float型數據。

在Java中使用java.text.DecimalFormat類格式化數字,本節中將着重講解DecimalFormat類。

  DecimalFormat

  在Java中對沒有格式化的數據遵循以下原則。

  如果數據絕對值大於0.001並且小於10000000,Java將以常規小數形式表示。

  如果數據絕對值小於0.001或者大於10000000,使用科學計數法表示。

  由於上述輸出格式不能滿足解決實際問題要求,所以通常將結果格式化指定形式進行輸出。在Java中可以使用DecimalFormat類進行格式化操作。

  DecimalFormat是NumberFormat的一個子類,用於格式化十進制數字,它可以將一些數字格式化為整數、浮點數、科學計數法、百分數等。

通過使用該類可以為要輸出的數字加上單位或控制數字的精度。一般情況下可以在實例化DecimalFormat對象時傳遞數字格式,也可以通過DecimalFormat類中的applyPattern()方法來實現數字格式化。

  當格式化數字時,在DecimalFormat類中使用一些特殊字符構成一個格式化模板,使數字按照一定特殊字符規則進行匹配。下表中列舉了定義格式化模板中的特殊字符及其含義。

數字的格式化輸出

import java.text.DecimalFormat;  
public class DecimalFormatSimpleDemo {  
     //使用實例化對象時設置格式化模式  
static public void SimgleFormat(String pattern,  double value) {       
 DecimalFormat myFormat = new DecimalFormat(pattern);   //實例化DecimalFormat對象  
        String output = myFormat.format(value);                   
    //將數字進行格式化  
      System.out.println(value + "\t" + pattern +  "\t" + output);  
}  

    //使用applyPattern()方法對數字進行格式化  
    static public void UseApplyPatternMethodFormat(String pattern,double value){  
        DecimalFormat myFormat=new DecimalFormat();  //實例化DecimalFormat對象  
        myFormat.applyPattern(pattern);   //調用applyPatten()方法設置格式化模板  
     System.out.println(value + " \t\t" + pattern  + "\t\t" + myFormat.format(value)); 
}  

    public static void main(String[] args) {  
        SimgleFormat("###,###.###", 123456.789);    //調用靜態SimgleFormat()方法  
        SimgleFormat("00000000.###kg", 123456.789);  //在數字后加上單位  
        SimgleFormat("000000.000", 123.78);   //按照格式模板格式化數字,不存在的位以0顯示  
        //調用靜態UseApplyPatternMethodFormat()方法  
        UseApplyPatternMethodFormat("#.###%", 0.789);     //將數字轉化為百分數形式  
        UseApplyPatternMethodFormat("###.##", 123456.789); //將小數點后格式化為兩位  
        UseApplyPatternMethodFormat("0.00\u2030", 0.789); //將數字轉化為千分數形式  
    }  
} 

在Eclipse中運行本實例,運行結果如下圖所示。

SimgleFormat()方法是在實例化DecimalFormat對象時為構造方法傳參設置數字格式化模板,而UseApplyPatternMethodFormat()方法是在實例化DecimalFormat對象后調用applyPattern()方法設置數字格式化模板。

在DecimalFormat類中除了可以設置格式化模式來格式化數字之外,還可以使用一些特殊方法對數字進行格式化設置。例如:

DecimalFormat myFormat=new DecimalFormat();   

//實例化DecimalFormat類對象  

myFormat.setGroupingSize(2);                      

//設置將數字分組的大小  

myFormat.setGroupingUsed(false); //設置是否支持分組 

在上述代碼中,setGroupingSize()方法用於設置格式化數字的分組大小,而setGroupingUsed()方法用於設置是否可以對數字進行分組操作。為了使讀者更好理解這兩個方法的使用,請看下面的實例。

例、 在項目中創建DecimalMethod類,在類的主方法中調用setGroupingSize()與setGrouping- Used()方法實現數字的分組。

import java.text.DecimalFormat;  
public class DecimalMethod {  
    public static void main(String[] args) {  
        DecimalFormat myFormat = new DecimalFormat();  
        myFormat.setGroupingSize(2);    //設置將數字分組為2  
        String output = myFormat.format(123456.789);  
        System.out.println("將數字以每兩個數字分組 "+output);  
        myFormat.setGroupingUsed(false); //設置不允許數字進行分組  
        String output2 = myFormat.format(123456.789);  
         System.out.println("不允許數字分組 "+output2);  
    }  
} 

在Eclipse中運行本實例,運行結果如下圖所示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM