[Java][觀念]DecimalFormat 用法

DecimalFormat 調整數字格式

java.text提供了NumberFormat類別來讓我們更方便的格式化數字的呈現方式

 

 

DecimalFormat的建構子

Constructor and Description
DecimalFormat()

Creates a DecimalFormat using the default pattern and symbols for the default locale.

DecimalFormat(String pattern)

Creates a DecimalFormat using the given pattern and the symbols for the default locale.

DecimalFormat(String pattern, DecimalFormatSymbols symbols)

Creates a DecimalFormat using the given pattern and symbols.

 

然後下面這是format方法的api,把數字資料丟進去它就會照著你上面DecimalFormat丟進去給的字串格式走

String format(long number)Specialization of format.

 

例子

for(int i=1;i<=100;i++){
	for(int j=1;j<=100;j++){

		String seatformat = "000.0";//設定格式三位數加一位小數,沒有補滿的話補靈
		DecimalFormat df = new DecimalFormat(seatformat);//將字串放入
		System.out.println(df.format(i)+"-"+df.format(j));//00-00到100.0-100.0
    }
}

網路上的例子
 

 NumberFormat nf = NumberFormat.getInstance(); 
        System.out.println(nf.format(1234567.2));//結果1,234,567.2
/*
   由於NumberFormat是一個抽象類別,我們必須用getInstance()來取得他裡面的方法,因此第1行NumberFormat nf = NumberFormat.getInstance();宣告了一個NumberFormat物件。NumberFormat物件格式化的方式是固定的,都是以每三位數一個逗號的方式格式化數字,浮點數欄位則是有的時候顯示,沒有就不顯示。所以第2行我們將1234567.2格式化後的結果印出,就可以得到1,234,567.2。
 
DecimalFormat實作了NumberFormat,並提供更客製化的格式選擇,用法如下: 
*/



 DecimalFormat df = new DecimalFormat("$#,##0.00"); 
        System.out.println(df.format(1234567.2));//結果$1,234,567.20
/*
第1行DecimalFormat df = new DecimalFormat("$#,##0.00");宣告了一個DecimalFormat物件,並可以在宣告時帶入要格式化的格式,若不帶入參數,格式規則和NumberFormat相同。格式化的字串中0代表一定要有值,#則代表不一定要有值,因此上例中的#,##0.00表示至少要有個位數及小數點後兩位,且每三位數以一個逗號分開,若格式化的數字沒有個位數或小數點後兩位,就會以0代替。另外我們可以根據需求在前後加上需要的文字,例如$符號,所以上例執行的結果就會是$1,234,567.20。這邊要注意若是我們在格式化字串結尾加上百分比符號『%』,DecimalFormat會自動幫我們將數值乘以100以符合字面意義,例如: 
*/


 DecimalFormat df = new DecimalFormat("#,##0.00%"); 
        System.out.println(df.format(1234567.2));//結果123,456,720.00%