數字的格式化在解決實際問題時使用很是廣泛,好比表示某超市的商品價格須要保留兩位有效數字等。Java主要對浮點型數據進行數字格式化操做,其中浮點型數據包括double型和float型數據。java
在Java中使用java.text.DecimalFormat類格式化數字,本節中將着重講解DecimalFormat類。app
DecimalFormat類spa
在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中運行本實例,運行結果以下圖所示。