在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