DecimalFormat(Java中的应用——十进制数字格式化)
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化【十进制数字】。
NumberFormat
可以按照本地的风格习惯进行数字的显示,也就是想格式化成什么样都可以自定义。
NumberFormat nf = NumberFormat.getInstance() ; // 得到默认的数字格式化显示 System.out.println("格式化之后的数字:" + nf.format(10000000)) ; System.out.println("格式化之后的数字:" + nf.format(1000.456)) ;
输出效果中可以看到,直接格式化成了每三位一个【,】的计数方式了,很欧美的样式。
常用的格式化符号
符号 | 位置 | 含义 |
0 |
数字 | 阿拉伯数字 |
# |
数字字 | 阿拉伯数字,如果不存在则显示为空 |
. |
数字 | 小数分隔符或货币小数分隔符 |
- |
数字 | 减号 |
, |
数字 | 分组分隔符 |
E |
数字 | 分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。 |
; |
子模式边界 | 分隔正数和负数子模式 |
% |
前缀或后缀 | 乘以 100 并显示为百分数 |
DecimalFormat
符号以及new的声明
/*#和0都是占位符,#:当要格式化的数字位数不足时#会补空白,0:当要格式化的数字位数不足时会补0*/
new DecimalFormat("#.##");
new DecimalFormat("0.000");//自动填充0补位
new DecimalFormat("#0.000%");//数字以%的形式展示,小数转百分比自动转换
new DecimalFormat("#.##%");//数字以%的形式展示,小数转百分比自动转换
new DecimalFormat(",###");//用","将数字按3位隔开
new DecimalFormat("$,###");//组合
new DecimalFormat("###,###.000");//四舍五入
DecimalFormat示例:
package com.item.action; import java.text.DecimalFormat; import java.text.NumberFormat; public class Demo { public static void main(String[] args) { //数字格式化,#和0都是占位符,#:当要格式化的数字位数不足时#会补空白;0:当要格式化的数字位数不足时会补0 DecimalFormat df1 = new DecimalFormat("#.##");//补充空白 System.out.println(df1.format(0.7)); DecimalFormat df2 = new DecimalFormat("0.000");//补充0 System.out.println(df2.format(0.7)); //数字以%的形式展示,小数转百分比自动转换 DecimalFormat df3 = new DecimalFormat("#0.000%"); System.out.println(df3.format(0.71)); //数字以%的形式展示,小数转百分比自动转换 DecimalFormat df4 = new DecimalFormat("#.##%"); System.out.println(df4.format(0.01111)); //用","将数字按3位隔开 DecimalFormat df5 = new DecimalFormat(",###"); System.out.println(df5.format(543234321)); //字符串与数字组合 DecimalFormat df6 = new DecimalFormat("$,###"); System.out.println(df6.format(543234321)); //四舍五入 DecimalFormat df7 = new DecimalFormat("###,###.000"); System.out.println(df7.format(543234321.567936781)); } }
对应结果: