在java.text包中提供了這樣的功能。下面首先看一個比較簡單的例子:
對于數字的格式化的幾個常用的類:
NumberFormat
DecimalFormat
import java.text.*;
import java.util.Locale;
public class FormatTest {
public static void main(String[] args) {
NumberFormatnf=NumberFormat.getInstance(Locale.CHINA);
NumberFormat nf1=NumberFormat.getInstance(Locale.GERMAN);
System.out.println(nf.format(1245.6));
System.out.println(nf1.format(1245.6));
}
}
結果為1,245.6
1.245,6
通過上面的方法可以將數字根據不同的地區習慣格式化成不同格式,來符合各個不同習慣。
上面是對針對國際化時的數字格式化,下面的例子是控制小數點顯示的例子:
import java.text.*;
import java.util.Locale;
public class FormatTest {
public static void main(String[] args) {
DecimalFormat df1=newDecimalFormat("####.0000");
System.out.println(df1.format(12.32));
Locale.setDefault(Locale.GERMAN);
DecimalFormat df=new DecimalFormat("0000.0000");
System.out.println(df.format(12.32));
}
}
結果為
12.3200
0012,3200
如果我想用科學記數法的格式來輸出數字該怎么辦呢??看下面的例子:
import java.text.*;
import java.util.Locale;
public class FormatTest {
public static void main(String[] args) {
DecimalFormat df=new DecimalFormat("0.00E0000");
System.out.print(df.format(125487.326558));
}
}
結果為
1.25E0005
如何表示百分數呢?請參考下面的代碼:
import java.text.*;
import java.util.Locale;
public class FormatTest {
public static void main(String[] args) {
NumberFormatnf=NumberFormat.getPercentInstance();
System.out.println(nf.format(0.25));
NumberFormat nf2=NumberFormat.getPercentInstance(Locale.GERMAN);
System.out.println(nf2.format(0.25));
}
}
結果為
25%
25%
以上逐個介紹了幾種不同的數字格式化方法。似乎應該談談如何解析已經被格式化的數字了。我們仍然模仿上面的方法舉一個簡單的例子:
由于被格式化后的數字都是字符型的,所以注意解析函數parse里的參數是String,但是解析后成為Number型
import java.text.*;
import java.util.Locale;
public class FormatTest {
public static void main(String[] args) {
NumberFormat nf=NumberFormat.getInstance();//獲得默認的格式
NumberFormat nf2=NumberFormat.getInstance(Locale.GERMAN);//獲得德國格式
try{
System.out.println( nf.parse("1254.25"));
System.out.println(nf2.parse("1245,24"));
}catch(Exception e){
e.printStackTrace();
}
}
}
結果為
1254.25
1245.24
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=213527