每天一个实战小技巧,
数字格式化
数字的格式化场景,更多的是在日志输出、金额计算相关的领域中会用到,平常我们可能更多使用String.format
来格式化,但是请注意,数字格式化是有一个DecimalFormat
,专门来针对数字进行格式化
今天我们的知识点就是DecimalFormat来实现数字格式化
1. DecimalFormat使用说明
对于DecimalFormat的使用比较简单,主要是借助两个占位0
与#
,区别在于当格式化的占位数,多余实际数的时候,占位0
的场景下,会用前缀0来补齐;而#
则不需要补齐
上面这个可能不太好理解,举例说明如下
1 | double num = 3.1415926; |
上面两个都是只输出整数,但是输出结果不同,如下
1 | 003 |
简单来说,就是0
,主要用于定长的输出,对于不足的,前缀补0
整数#小数
除了上面的基本姿势之外,更常见的是设置整数、小数的位数
1 | System.out.println(new DecimalFormat("000.00", num)); |
输出结果如下
1 | 003.14 |
百分比
百分比的输出也属于常见的case,使用DecimalFormat就很简单
1 | System.out.println(new DecimalFormat("000.00%", num)); |
输出如下
1 | 314.16% |
科学计数
非专业场景下,科学技术的可能性比较小
1 | System.out.println(new DecimalFormat("000.00E0", num)); |
输出结果如下
1 | 314.16E-2 |
金钱样式输出
金融相关的钱输出时,非常有意思的是每三位加一个逗号分隔,如果想实现这个效果,也可以很简单完成
1 | double num = 31415926 |
输出结果如下
1 | 31,415,926 |
嵌入模板输出
格式化模板,除了基础的000, ###
之外,还可以直接放在一个字符串中,实现类似String.format
的效果
比如显示余额
1 | double num = 31415926 |
输出结果如下
1 | 您的余额31,415,926¥ |
系列博文:
- 实战小技巧1:字符串占位替换-JDK版
- 实战小技巧2:数组与list互转
- 实战小技巧3:字符串与容器互转
- 实战小技巧4:优雅的实现字符串拼接
- 实战小技巧5:驼峰与下划线互转
- 实战小技巧6:枚举的特殊用法
- 实战小技巧7:排序比较需慎重
- 实战小技巧8:容器的初始化大小指定
- 实战小技巧9:List.subList使用不当StackOverflowError
- 实战小技巧10:不可变容器
- 实战小技巧11:数组拷贝
II. 其他
1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
2. 声明
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
3. 扫描关注
一灰灰blog