实战小技巧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¥



相关文章
|
编解码 监控 计算机视觉
QT5.14.2 视频分帧:QT与FFmpeg的高效结合
QT5.14.2 视频分帧:QT与FFmpeg的高效结合
833 0
|
传感器 自动驾驶 算法
【Apollo】赋能移动性:阿波罗自动驾驶系统的影响
【Apollo】赋能移动性:阿波罗自动驾驶系统的影响
|
SQL 关系型数据库 MySQL
使用OceanBase进行大规模数据迁移的最佳实践
【8月更文第31天】随着业务的不断扩展,数据迁移成为了企业日常运营中不可避免的任务之一。对于那些正在从传统的数据库系统向分布式数据库系统过渡的企业来说,数据迁移尤为重要。OceanBase 是一个由阿里巴巴集团开发的高性能分布式关系数据库,它以其高可用性、水平扩展能力和成本效益而闻名。本文将探讨如何使用 OceanBase 进行大规模数据迁移,并提供相关的最佳实践和代码示例。
1103 1
|
Windows
win10 cmd切换不了目录 windows命令提示符 切换目录 (已解决)
win10 cmd切换不了目录 windows命令提示符 切换目录 (已解决)
1041 0
|
存储 缓存 NoSQL
高性能的本地缓存方案选型,看这篇就够了!
高性能的本地缓存方案选型,看这篇就够了!
24585 0
7-5 统计大写辅音字母
7-5 统计大写辅音字母
177 0
|
人工智能
2019年度SAP项目实践计划
2019年度SAP项目实践计划
|
机器学习/深度学习 域名解析 弹性计算
阿里云ECS云服务器和轻量应用服务器区别对比及选择方法
阿里云ECS云服务器和轻量应用服务器区别对比及选择方法:
|
Windows
ping命令使用技巧(一次Ping多个地址)
打开windows 命令行 窗口, 在命令行输入以下命令: for /l %i in (1,1,255) do ping -n 1  -w 60 192.168.0.%i  | find "Reply" >>d:\pingall.
6342 0
|
SQL Java 关系型数据库
RDS SQL Server 设置SSL加密连接
RDS 目前包含SQL Server 2008 R2 在数据安全方面,提供文件层面的TDE (Transparent Data Encryption)数据加密和链路通信层面的SSL(Secure Sockets Layer)加密。
4151 0