本章目标
可以使用NumberFormat类进行本地化的数字显示
可以使用DecimalFormat指定格式化模板
NumberFormat类
NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示。
此类的定义如下:
——public abstract class NumberFormat extends Format
使用当前语言环境格式化数字
import java.text.NumberFormat;
public class NumberFormatDemo01 {
public static void main(String[] args) {
NumberFormat nf = null;
nf = NumberFormat.getInstance();//得到默认的数字格式显示
System.out.println("格式化之后的数字:"+nf.format(1000000));
System.out.println("格式化之后的数字:"+nf.format(1000.235));
}
/* 结果:
* 格式化之后的数字:1,000,000
* 格式化之后的数字:1,000.235
* */
}
DecimalFormat
DecimalFormat也是Format的一个子类,主要的作用是用来格式化数字使用,当然,在格式化数字的时候要比直接使用NumberFormat更加方便,因为可以直接指定按用户自定义的方式进行格式化操作,与之前讲解的SimpleDateFormat类似,如果要想进行自定义格式化操作,则必须指定格式化操作的模板。
格式化模板
格式化数字
import java.text.DecimalFormat;
import java.text.NumberFormat;
class FormatDemo{
public void format1(String pattern, double value){
DecimalFormat df = null;
df = new DecimalFormat(pattern);
String str = df.format(value);
System.out.println("使用 "+pattern+" --> 格式化数字"+value+" --> "+str);
}
}
public class NumberFormatDemo02 {
public static void main(String[] args) {
FormatDemo demo = new FormatDemo();
demo.format1("###,###.###", 111222.345678);
demo.format1("000,000.000", 11222.345678);
demo.format1("¥###,###.###", 111222.345678);
demo.format1("¥000,000.000", 11222.345678);
demo.format1("##.###%", 0.345678);//使用百分数形式
demo.format1("00.###%", 0.0345678);//使用百分数形式
demo.format1("##.###\u2030", 0.345678);//使用千分数形式
}
/* 结果:
* 使用 ###,###.### --> 格式化数字111222.345678 --> 111,222.346
* 使用 000,000.000 --> 格式化数字11222.345678 --> 011,222.346
* 使用 ¥###,###.### --> 格式化数字111222.345678 --> ¥111,222.346
* 使用 ¥000,000.000 --> 格式化数字11222.345678 --> ¥011,222.346
* 使用 ##.###% --> 格式化数字0.345678 --> 34.568%
* 使用 00.###% --> 格式化数字0.0345678 --> 03.457%
* 使用 ##.###‰ --> 格式化数字0.345678 --> 345.678‰
* */
}