Decimalformat 是Numberformat的子类,用于格式化十进制数字,DecimalFormat 包含一个模式 和一组符号 。
符号含义:
0 一个数字
# 一个数字,不包括 0
. 小数的分隔符的占位符
, 分组分隔符的占位符
; 分隔格式。
- 缺省负数前缀。
% 乘以 100 和作为百分比显示
? 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用
国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代
替十进制分隔符。
X 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。
我在这次学习中主要感受了format,applyformat两种方法进行格式设置的不同。
eg:
import java.text.DecimalFormat;
public class DecimalFormatdemo {
static public void simpleformat(String pattern,double value ){
DecimalFormat myformat1=new DecimalFormat(pattern);
String str=myformat1.format(value);
System.out.println(value+" "+pattern+" "+str);
}
static public void useapplyformat(String pattern,double value){
DecimalFormat myformat2=new DecimalFormat();
myformat2.applyPattern(pattern);
System.out.println(value+" "+pattern+" "+myformat2.format(value));
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
simpleformat("###,###.###",123456.789);
simpleformat("00000000.###g",123456.789);
simpleformat("0000.00",123.78);
useapplyformat("#.###%",0.145);
useapplyformat("###.##",123456.789);
useapplyformat("0.00\u2030",0.145);
}
结果是:
123456.789 ###,###.### 123,456.789
123456.789 00000000.###g 00123456.789g
123.78 0000.00 0123.78
0.145 #.###% 14.5%
123456.789 ###.## 123456.79
0.145 0.00‰ 145.00‰
在这次练习中虽然这两个方法都可以实现格式化数字的操作,但是有所不同,simpleformat()是在实例化DecimalFormat对象的时候设置数字格式化模版,而useapplyPattern()是在实例化DecimalFormat对象后调用applypattern()方法设置数字化模版。相比于之前String.format()对format中的参数的使用多了一份理解。