实战小技巧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的高效结合
933 0
|
Linux
`grep`命令搜索当前目录及其子目录下的所有文件
`grep`命令搜索当前目录及其子目录下的所有文件
7019 1
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
4855 11
|
安全 搜索推荐 Java
小白如何挖到自己的第一个漏洞
首先声明本篇文章采用的漏洞案例均已上报并且已修复,本篇文章使用案例介绍以及如何进行搜集的方法进行介绍小白如何挖到第一漏洞,旨在帮助白帽子快速度过前期没有实战经历的难题
1448 0
|
Linux
Linux中grep命令详解与实战应用
Linux中grep命令详解与实战应用
2787 0
7-5 统计大写辅音字母
7-5 统计大写辅音字母
210 0
|
Java Android开发 Windows
小技巧:为 Eclipse 设置链式调用的代码格式化(Formatter)
小技巧:为 Eclipse 设置链式调用的代码格式化(Formatter)
862 0
小技巧:为 Eclipse 设置链式调用的代码格式化(Formatter)
|
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.
6763 0