文本简要介绍了Java中`java.text.DecimalFormat`类的使用,包括其功能、支持的数字类型、特殊模式字符及其在格式化字符串中的应用。举例说明了如何使用`#`和`0`占位符来格式化数字,包括百分比、科学记数法、固定小数位数等格式。还提供了多个格式化字符串的应用示例及其在不同数值下的输出效果,并指出了在特定环境下(如苍穹系统)的一些测试结果。
java.text.DecimalFormat以及小数字段类型的格式化字符串应用示例
一、关于知识背景
系统中的格式化字符串主要设置路径如下图所示,采用的是java.text.DecimalFormat
苍穹中格式化字符串为列表和表单界面分开设置
java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.DecimalFormat
DecimalFormat是NumberFormat的一个具体子类,用途:格式化十进制数字。
该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数(123)、定点数(123.4)、科学记数法表示的数(1.23E4)、百分数(12%)和金额($123)。所有这些内容都可以本地化。
Special Pattern Characters特殊模式字符
模式中的许多字符都是字面上的; 它们在解析期间匹配,并在格式化期间输出不变。 另一方面,特殊字符代表其他字符,字符串或字符类。 除非另有说明,否则必须引用它们,如果它们作为文字出现在前缀或后缀中。
此处列出的字符用于非本地化模式。 本地化模式使用从此格式化程序的DecimalFormatSymbols对象中获取的相应字符,这些字符将失去其特殊状态。 货币符号和报价有两个例外,它们没有本地化。
二、应用举例
DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。
0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
苍穹中主要可以使用的格式化字符串参考举例
#.##% 转化成百分比展示
0.00 取一位整数和两位小数
#.00 取除整数部分,保留两位小数。
三、相关原始测试试用
小数原始值举例:3.1415927
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
1 | 0 | 取一位整数(苍穹中尝试了下不成功) | 3 |
小数原始值举例:3.1415927
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
2 | 0.00 | 取一位整数和两位小数 | 3.14 |
注意:假设此时原始值输入的是31.415927的话,显示将显示为1.41
小数原始值举例:3.1415927
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
3 | 00.000 | 取两位整数和三位小数,整数不足部分以0填充(苍穹中尝试了下不成功) | 03.142 |
(苍穹中尝试了下不成功,不过试了下输入23.555,输出23.55)
小数原始值举例:3.1415927
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
4 | # | 取所有整数部分(苍穹中尝试了下不成功) | 3 |
小数原始值举例:3.1415927
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
5 | #.##% | 以百分比方式计数,并取两位小数 | 314.15% |
小数原始值举例:299792458
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
6 | #.#####E0 | 显示为科学计数法,并取五位小数 | 2.997929E8 |
小数原始值举例:299792458
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
7 | 00.####E0 | 显示为两位整数的科学计数法,并取数四位小数 | 29.9792E7 |
无效
小数原始值举例:299792458
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
8 | ,### | 每三位以逗号进行分割 | 299,792,458 |
小数原始值举例:299792458
序号 | 条件化字符串 | 释义 | 输出(前端显示) |
9 | 光速大小为每秒,###米 | 以格式迁入文本 |
无效
推荐阅读