- import java.text.DecimalFormat;
- class FormatDemo{
- public void format1(String pattern,double value){
- // 声明一个DecimalFormat对象
- DecimalFormat df = new DecimalFormat(pattern);
- String str = df.format(value);
- System.out.println("使用" + pattern + "样式格式化:" + value + " 得到:"+ str);
- }
- }
- public class Test{
- public static void main(String args[]){
- FormatDemo fd = new FormatDemo();
- fd.format1("###,###.###", 111222.34567);
- //前边不够补0 后边多余四舍五入 不够补0
- fd.format1("000,000.000", 11222.34567);
- fd.format1("###,###.###¥", 111222.34567);
- fd.format1("000,000.000¥", 11222.34567);
- //百分之多少
- fd.format1("##.###%", 0.345678);
- //百分之多少
- fd.format1("00.###%", 0.0345678);
- //千分之多少
- fd.format1("###.###/u2030", 0.345678);
- //指数形式
- DecimalFormat df1 = new DecimalFormat();
- //用下这个东西applypattern
- df1.applyPattern("0.000E0000");
- System.out.println(df1.format(111222.34567));
- }
- }
程序运行结果:
- 使用###,###.###样式格式化: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‰
- 1.112E0005
DecimalFormat格式化模板
序号 | 标 记 | 位 置 | 描 述 |
1 | 0 | 数字 | 代表阿拉伯数字,每一个0表示一位阿拉伯数字, 如果该位不存在则显示0 |
2 | # | 数字 | 代表阿拉伯数字,每一个#表示一位阿拉伯数字, 如果该位不存在则不显示 |
3 | . | 数字 | 小数点分隔符或货币的小数分隔符 |
4 | - | 数字 | 代表负号 |
5 | , | 数字 | 分组分隔符 |
6 | E | 数字 | 分隔科学计数法中的尾数和指数 |
7 | ; | 子模式边界 | 分隔正数和负数子模式 |
8 | % | 前缀或后缀 | 数字乘以100并显示为百分数 |
9 | /u2030 | 前缀或后缀 | 乘以1000并显示为千分数 |
10 | ¤ /u00A4 | 前缀或后缀 | 货币记号,由货币号替换。如果两个同时出现, 则用国际货币符号替换;如果出现在某个模式中 ,则使用货币小数分隔符,而不使用小数分隔符 |
11 | , | 前缀或后缀 | 用于在前缀或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引 号本身,则连续使用两个单引号,例如"# o''clock" |