Java在java.text包中提供了API類NumberFormat,用於貨幣格式化,百分比格式化和數值格式化。java
注:currency ,貨幣,流通;Instance:例子,狀況。git
一、getCurrencyInstance()。靜態方法,創建一個NumberFormat類的對象並返回引用,該引用指訂貨幣格式爲系統預設的貨幣格式。spa
public static void main(String[] args){ NumberFormat nf=NumberFormat.getCurrencyInstance(); System.out.println(nf.format(123.658)); }
運行結果:code
¥123.56
二、getCurrencyInstance(Locale) 。靜態方法,創建一個NumberFormat類的對象,並返回引用,該引用的貨幣格式由Locale指定。orm
public static void main(String[] args){ //Locale locale=Locale.US; NumberFormat nf=NumberFormat.getCurrencyInstance(Locale.US); System.out.println(nf.format(1236.258)); }
運行結果:xml
$1,236.26
三、format(anyNumberType)。返回由NumberFormat的靜態方法所指定的輸出格式,這個格式由字符串來表達。參數能夠是數值類或者BigDecimal對象。對象
一、getPercentInstance()。靜態方法,建立一個NumberFormat類的對象並返回其引用。該對象指定百分比格式爲系統預設格式。ci
二、getPercentInstance(Locale)。靜態方法,建立一個NumberFormat類的對象並返回引用。該對象的百分比格式由Locale來指定。字符串
三、format(anyNumberType)。返回由NumberFormat的靜態方法所指定的輸出格式,這個格式由字符串來表達。參數能夠是數值類型或者BigDecimal對象。get
public static void main(String[] args){ double d=123.6958; NumberFormat nf=NumberFormat.getPercentInstance(); System.out.println(nf.format(d)); NumberFormat nf1=NumberFormat.getPercentInstance(Locale.CANADA); System.out.println(nf1.format(d)); }
運行結果:
12,370% 12,370%
四、setMinimumFractionDigits(int)。設置最少小數點位數。
五、setMaximumFractionDigits(int)。設置最多小數位數。
public static void main(String[] args){ double d=123.6958; NumberFormat nf=NumberFormat.getPercentInstance(); nf.setMinimumFractionDigits(4);//不足4位小數,則以0補位。 System.out.println(nf.format(d)); nf.setMaximumFractionDigits(1);//最多保留1位小數。 System.out.println(nf.format(d)); NumberFormat nf1=NumberFormat.getPercentInstance(Locale.CANADA); System.out.println(nf1.format(d)); nf1.setMaximumFractionDigits(1);//最多保留1位小數,如無小數不補0。 System.out.println(nf1.format(d)); }
運行結果:
12,369.5800% 12,369.6% 12,370% 12,369.6%
1.getNumberInstance(); 靜態方法,建立一個NumberFormat類的對象並返回其引用。該對象指定數值格式爲系統預設格式。
2.getNumberInstance(Locale); 靜態方法,建立一個NumberFormat類的對象並返回引用。該對象的數值格式由Locale來指定。
3.format(anyNumberType);返回由NumberFormat的靜態方法所指定的輸出格式,這個格式由字符串來表達。參數能夠是數值類型或者BigDecimal對象。
4.setMinimumFractionDigits(int)
5.setMaximumFractionDigits(int)
public static void main(String[] args){ double d=123456.3698; NumberFormat nf=NumberFormat.getNumberInstance(); System.out.println(nf.format(d)); nf.setMinimumFractionDigits(4); System.out.println(nf.format(d)); NumberFormat nf01=NumberFormat.getNumberInstance(Locale.US); System.out.println(nf01.format(d)); nf01.setMaximumFractionDigits(1); System.out.println(nf01.format(d)); }
運行結果:
123,456.3698 123,456.37 123,456.4
DecimalFormat提供了許多用來規定數字格式的模式字符串,進行對數字的格式化處理。本文只討論經常使用的幾種:
一、「0」——表示一位數值;如沒有,顯示0。如「0000.0000」,整數位>4,按實際輸出,<4前面補0,湊足4位。
二、「#」——表示任何位數的整數。如沒有,則不顯示。在小數點模式後使用,只表示一位小數,四捨五入。例如:
# 無小數,小數部分四捨五入
.# 整數部分不變,一位小數,四捨五入
.## 整數部分不變,二位小數,四捨五入
三、「.」——表示小數點模式;
四、「,」與模式「0」一塊兒使用,表示逗號
public static void main(String[] args){ double d1=123456.36987,d2=12.3698; DecimalFormat nf=new DecimalFormat("0000.000"); System.out.println("d1="+nf.format(d1)); System.out.println("d2="+nf.format(d2)); nf=new DecimalFormat("#"); System.out.println("d1="+nf.format(d1)); nf=new DecimalFormat(".#"); System.out.println("d1="+nf.format(d1)); nf=new DecimalFormat(".###"); System.out.println("d1="+nf.format(d1)); nf=new DecimalFormat("0000,0000.0000"); System.out.println("d1="+nf.format(d1)); }
運行結果:
d1=123456.370 d2=0012.370 d1=123456 d1=123456.4 d1=123456.37 d1=0012,3456.3699