实战小技巧12: 数字格式化

简介: 数字的格式化场景,更多的是在日志输出、金额计算相关的领域中会用到,平常我们可能更多使用String.format来格式化,但是请注意,数字格式化是有一个DecimalFormat,专门来针对数字进行格式化今天我们的知识点就是DecimalFormat来实现数字格式化

数字的格式化场景,更多的是在日志输出、金额计算相关的领域中会用到,平常我们可能更多使用String.format来格式化,但是请注意,数字格式化是有一个DecimalFormat,专门来针对数字进行格式化


今天我们的知识点就是DecimalFormat来实现数字格式化


1. DecimalFormat使用说明



对于DecimalFormat的使用比较简单,主要是借助两个占位0#,区别在于当格式化的占位数,多余实际数的时候,占位0的场景下,会用前缀0来补齐;而#则不需要补齐


上面这个可能不太好理解,举例说明如下

double num = 3.1415926;
System.out.println(new DecimalFormat("000", num));
System.out.println(new DecimalFormat("###", num));
复制代码


上面两个都是只输出整数,但是输出结果不同,如下

003
3
复制代码


简单来说,就是0,主要用于定长的输出,对于不足的,前缀补0


整数#小数


除了上面的基本姿势之外,更常见的是设置整数、小数的位数


System.out.println(new DecimalFormat("000.00", num));
System.out.println(new DecimalFormat("###.##", num));
复制代码


输出结果如下

003.14
3.14
复制代码


百分比


百分比的输出也属于常见的case,使用DecimalFormat就很简单

System.out.println(new DecimalFormat("000.00", num));
System.out.println(new DecimalFormat("###.##", num));
复制代码


输出如下

314.16%
314.16%
复制代码


科学计数


非专业场景下,科学技术的可能性比较小


System.out.println(new DecimalFormat("000.00E0", num));
System.out.println(new DecimalFormat("###.##E0", num));
复制代码


输出结果如下


314.16E-2
3.1416E0
复制代码


金钱样式输出


金融相关的钱输出时,非常有意思的是每三位加一个逗号分隔,如果想实现这个效果,也可以很简单完成


double num = 31415926
System.out.println(new DecimalFormat(",###", num));
复制代码


输出结果如下

31,415,926
复制代码


嵌入模板输出


格式化模板,除了基础的000, ###之外,还可以直接放在一个字符串中,实现类似String.format的效果


比如显示余额

double num = 31415926
System.out.println(new DecimalFormat("您的余额,###¥", num));
复制代码


输出结果如下

您的余额31,415,926¥



相关文章
|
5月前
|
Java 编译器
15. 【Java教程】字符串
15. 【Java教程】字符串
33 4
|
6月前
|
Java
Java练习题-键盘录入字符串实现大小写转换
Java练习题-键盘录入字符串实现大小写转换
|
机器学习/深度学习 Java
java正则表达式进阶
当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是"非贪心的"。"非贪心的"模式匹配搜索到的、尽可能短的字符串,而默认的"贪心的"模式匹配搜索到的、尽可能长的字符串。 例如,在字符串"oooo"中,"o+?“只匹配单个"o”,而"o+“匹配所有"o”。
205 1
java正则表达式进阶
|
Java
java学习第十天笔记-字符串200-罗马数字的两种写法
java学习第十天笔记-字符串200-罗马数字的两种写法
93 0
java学习第十天笔记-字符串200-罗马数字的两种写法
|
Java
java学习第九天笔记-字符串182-字符串反转
java学习第九天笔记-字符串182-字符串反转
59 0
java学习第九天笔记-字符串182-字符串反转
|
Java
Java经典编程习题100例:第1例:编写程序,判断给定的某个年份是否是闰年
Java经典编程习题100例:第1例:编写程序,判断给定的某个年份是否是闰年
135 0
|
Java
java学习第三天笔记-运算符07-字符和字符串得操作49
java学习第三天笔记-运算符07-字符和字符串得操作49
52 0
java学习第三天笔记-运算符07-字符和字符串得操作49
|
Java
java学习第三天笔记-运算符06-字符和字符串得操作48
java学习第三天笔记-运算符06-字符和字符串得操作48
49 0
java学习第三天笔记-运算符06-字符和字符串得操作48
|
Python
python编程:format格式输出笔记-1_
python编程:format格式输出笔记-1_
111 0
python编程:format格式输出笔记-1_
|
Python
Pyhon编程:format格式化字符串
Pyhon编程:format格式化字符串
109 0