DecimalFormat
这个类主要使用来格式化十进制数。能够根据pattern控制数字前端缺位自动补零的和后端缺位自动补零的个数,前缀和后缀的、分组符号和小数点的显示。还能够改变格式化符号的显示,如小数点改成*,分组符号改成|。前端
DecimalFormat df1 = new DecimalFormat(pattern); //pattern是一个字符串。java
df1.format(12.34)后端
pattern是由一些特定符号组成。spa
0 —— 表明一个数字
# —— 表明一个数字,但不能是0
. —— 表明小数的分隔符的占位符
, —— 表明分组分隔符的占位符 code
% —— 乘以 100 和做为百分比显示 orm
' —— 使用前缀,后缀时用ci
double num = 123456789.12070; System.out.println(".00 - " + new DecimalFormat(".00").format(num) + " 保留两位小数"); System.out.println("00000000 - " + new DecimalFormat("00000000").format(12.043) + " 小数点前显示八位,不足前端自动补零。"); System.out.println(".00000000 - " + new DecimalFormat(".00000000").format(12.043) + " 保留八位小数,不足末尾自动补零"); System.out.println(".### - " + new DecimalFormat(".###").format(num)); System.out.println(",000.000 - " + new DecimalFormat(",000.000").format(num) + " 分组显示。"); System.out.println(".00E00 - " + new DecimalFormat(".00E00").format(num) + " 科学计数显示,同时保留两位小数,E后保留两位数不足前端自动补零"); System.out.println(".000% - " + new DecimalFormat(".000%").format(0.1812) + " 百分比显示,同时保留三位小数。"); System.out.println("prefix and suffix - " + new DecimalFormat("'dollar-'.00'$'").format(num) + " 'dollar-'是前缀,'$'是后缀。"); DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(Locale.CHINA); unusualSymbols.setDecimalSeparator('*'); unusualSymbols.setGroupingSeparator('|'); DecimalFormat weirdFormatter = new DecimalFormat(",000.000", unusualSymbols); System.out.println("Symbols Change - " + weirdFormatter.format(num) + " 把小数点符号改成*, 分组符号改成|");
原始数值为123456789.12070字符串
.00 - 123456789.12 保留两位小数
form
00000000 - 00000012 小数点前显示八位,不足前端自动补零。class
.00000000 - 12.04300000 保留八位小数,不足末尾自动补零
.### - 123456789.121
,000.000 - 123,456,789.121 分组显示。
.00E00 - .12E09 科学计数显示,同时保留两位小数,E后保留两位数不足前端自动补零
.000% - 18.120% 百分比显示,同时保留三位小数。
prefix and suffix - dollar-123456789.12$ 'dollar-'是前缀,'$'是后缀。
Symbols Change - 123|456|789*121 把小数点符号改成*, 分组符号改成|