DecimalFormat 详解

本文深入探讨了Java中DecimalFormat类的使用方法及高级特性,包括格式化十进制数、控制数字前后端缺位自动补零、设置前缀和后缀、分组符号和小数点显示,以及改变格式化符号显示,如将小数点改为*,分组符号改为|。通过实例展示了如何灵活运用DecimalFormat进行精确的数据展示。
摘要由CSDN通过智能技术生成

DecimalFormat这个类主要使用来格式化十进制数。可以根据pattern控制数字前端缺位自动补零的和后端缺位自动补零的个数,前缀和后缀的、分组符号和小数点的显示。还可以改变格式化符号的显示,如小数点改为*,分组符号改为|。

用法 

DecimalFormat df1 = new DecimalFormat(pattern);  //pattern是一个字符串。

df1.format(12.34)

pattern是由一些特定符号组成。

0 —— 代表一个数字 
# —— 代表一个数字,但不能是0 
. —— 代表小数的分隔符的占位符 
, —— 代表分组分隔符的占位符 

% —— 乘以 100 和作为百分比显示 

' —— 使用前缀,后缀时用

    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 保留两位小数

00000000 - 00000012 小数点前显示八位,不足前端自动补零。

.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 把小数点符号改为*, 分组符号改为|


转载于:https://my.oschina.net/u/1583086/blog/264406

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值