http://book.51cto.com/art/200907/140729.htm
DecimalFormat类也是Format的一个子类,主要作用是格式化数字。当然,在格式化数字时要比直接使用NumberFormat更加方便,因为可以直接指定按用户自定义的方式进行格式化操作,与SimpleDateFormat类似,如果要进行自定义格式化操作,则必须指定格式化操作的模板,此模板如表11-13所示。
表11-13 DecimalFormat格式化模板
|
序号 |
标 记 |
位 置 |
描 述 |
|
1 |
0 |
数字 |
代表阿拉伯数字,每一个0表示一位阿拉伯数字, 如果该位不存在则显示0 |
|
2 |
# |
数字 |
代表阿拉伯数字,每一个#表示一位阿拉伯数字, 如果该位不存在则不显示 |
|
3 |
. |
数字 |
小数点分隔符或货币的小数分隔符 |
|
4 |
- |
数字 |
代表负号 |
|
5 |
, |
数字 |
分组分隔符 |
|
6 |
E |
数字 |
分隔科学计数法中的尾数和指数 |
|
7 |
; |
子模式边界 |
分隔正数和负数子模式 |
|
8 |
% |
前缀或后缀 |
数字乘以100并显示为百分数 |
|
9 |
\u2030 |
前缀或后缀 |
乘以1000并显示为千分数 |
|
10 |
¤ \u00A4 |
前缀或后缀 |
货币记号,由货币号替换。如果两个同时出现, 则用国际货币符号替换;如果出现在某个模式中 ,则使用货币小数分隔符,而不使用小数分隔符 |
|
11 |
, |
前缀或后缀 |
用于在前缀或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引 号本身,则连续使用两个单引号,例如"# o''clock" |
下面通过实例代码说明以上格式化模板的使用。
范例:格式化数字
- package org.lxh.demo11.numberdemo;
- import java.text.DecimalFormat;
- class FormatDemo{
- public void format1(String pattern,double value){
- DecimalFormat df = null ; // 声明一个DecimalFormat对象
- 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.34567);
- demo.format1("000,000.000", 11222.34567);
- demo.format1("###,###.###¥", 111222.34567);
- demo.format1("000,000.000¥", 11222.34567);
- demo.format1("##.###%", 0.345678); // 使用百分数形式
- demo.format1("00.###%", 0.0345678); // 使用百分数形式
- demo.format1("###.###\u2030", 0.345678); // 使用千分数形式
- }
- }
程序运行结果:
- 使用###,###.###格式化数字111222.34567:111,222.346
- 使用000,000.000格式化数字11222.34567:011,222.346
- 使用###,###.###¥格式化数字111222.34567:111,222.346¥
- 使用000,000.000¥格式化数字11222.34567:011,222.346¥
- 使用##.###%格式化数字0.345678:34.568%
- 使用00.###%格式化数字0.0345678:03.457%
- 使用###.###‰格式化数字0.345678:345.678‰
311

被折叠的 条评论
为什么被折叠?



