數字格式化

數字的格式化在解決實際問題時使用很是廣泛,好比表示某超市的商品價格須要保留兩位有效數字等。Java主要對浮點型數據進行數字格式化操做,其中浮點型數據包括double型和float型數據。java

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

  DecimalFormatspa

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

  若是數據絕對值大於0.001而且小於10000000,Java將以常規小數形式表示。orm

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

  因爲上述輸出格式不能知足解決實際問題要求,因此一般將結果格式化指定形式進行輸出。在Java中可使用DecimalFormat類進行格式化操做。blog

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

經過使用該類能夠爲要輸出的數字加上單位或控制數字的精度。通常狀況下能夠在實例化DecimalFormat對象時傳遞數字格式,也能夠經過DecimalFormat類中的applyPattern()方法來實現數字格式化。ci

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

數字的格式化輸出

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中運行本實例,運行結果以下圖所示。

相關文章
相關標籤/搜索