DecimalFormat
DecimalFormat
是 NumberFormat
的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。
可以使用DecimalFormat实现保留小数点后两位。
构造函数:
DecimalFormat(String pattern)
使用给定的模式和默认语言环境的符号创建一个 DecimalFormat。
DecimalFormat(String pattern,DecimalFormatSymbols symbols)
使用给定的模式和符号创建一个 DecimalFormat。
格式化方法:
StringBuffer
format(double number,StringBuffer result, FieldPosition fieldPosition)
格式化一个 double 值,以生成一个字符串。
StringBuffer
format(long number,StringBuffer result, FieldPosition fieldPosition)
格式化一个 long 值,以生成一个字符串。
StringBuffer
format(Object number,StringBuffer toAppendTo, FieldPosition pos)
格式化一个数,并将所得文本追加到给定的字符串缓冲区。
代码:
运行结果:
补充:
对于Integer的用法,之前的博客总结过,今天总结一下Integer类的方法valueOf()。
public static Integer valueOf(int i)返回一个表示指定的 int 值的 Integer 实例。如果不需要新的 Integer 实例,则通常应优先使用该方法,而不是构造方法
Integer(int)
,因为该方法有可能通过缓存经常请求的值而显著提高空间和时间性能。
意思是说,如果使用该方法创建对象的话,在内存中如果存在该整数值,那么就不需要重新开辟空间了,类似于将Integer m = n;n在byte的范围内(-128~127)。所以,有如下结果:
Integer n1 = new Integer(1);
Integer n2 = Integer.valueOf(1);
Integer n3 = 1;
System.out.println(n1==n2);//false
System.out.println(n2==n3);//true
在栈内存中有n1,n2,n3,堆内存中有一个对象实体new Integer(1),n1存储该对象实体的地址,n2指向内存中的数字“1”,定义n3的时候,因为内存中已经有了数字“1”,因此n3直接指向该数字,因此,n1!=n2,n2==n3。