格式说明符以百分号(%)开头,以转换器结尾
转换器是一个字符,指示要格式化的参数的类型
在百分号(%)和转换器之间,您可以具有可选的标志和说明符
java.util.Formatter中记录了许多转换器,标志和说明符
Converter | Flag | Explanation |
d | 十进制整数 | |
f | A float | |
n | 适合于运行应用程序的平台的换行符。您应该始终使用%n 而不是\n |
|
tB | 日期和时间转换-特定于语言环境的月份的全名 | |
td,te | 日期和时间转换-2 位数的月份。 td 根据需要具有前导零,te 没有 | |
ty,tY | 日期和时间转换-ty = 2 位数字年份,tY = 4 位数字年份 | |
tl | 日期和时间转换-12 小时制中的小时 | |
tM | 日期和时间转换-以 2 位数字表示的分钟,必要时带有前导零 | |
tp | 日期和时间转换-特定于区域的 am/pm(小写) | |
tm | 日期和时间转换-以 2 位数字表示的月份,必要时带有前导零 | |
tD | 日期和时间转换-日期为%tm%td%ty | |
08 | 八个字符的宽度,必要时带有前导零 | |
+ | 包括正负号的符号 | |
, | 包括特定于语言环境的分组字符 | |
- | Left-justified.. | |
.3 | 小数点后三位 | |
10.3 | 右对齐十个字符,小数点后三位 |
可以使用java.text.DecimalFormat类来控制前零和后零,前缀和后缀,分组(千位)分隔符和十进制分隔符的显示
DecimalFormat
在数字格式设置方面提供了很大的灵 Active,但可以使您的代码更复杂
Value | Pattern | Output | Explanation |
123456.789 | ###,###.### | 123,456.789 | 井号(#)表示一个数字,逗号是分组分隔符的占位符,句点是十进制分隔符的占位符 |
123456.789 | ###.## | 123456.79 | value 小数点右边有三位数,而pattern 只有两位。 format 方法通过四舍五入来处理此问题 |
123.78 | 000000.000 | 000123.780 | pattern 指定前导零和尾随零,因为使用 0 字符代替了井号(#)。 |
12345.67 | $###,###.### | $12,345.67 | pattern 中的第一个字符是美元符号($)。请注意,它紧接在格式output 中最左边的数字之前 |
public static void main(String[] args) { // 格式化打印 System.out.format("%s%s%n","世界","你好"); // 十进制整数格式化 System.out.format("%s%d%n","成绩=",100); // 换行打印 System.out.format("%s%n","HelloWorld"); // 浮点数格式化 System.out.format("%s%f%n","金额=",99.99d); // 数字格式化, 千分位, (#)表示一个数组的占位符, (,)表示分组分隔符的占位符 formatToString("###,###.##",131415926.99); // 数字格式化 小数点后位数,四舍五入 formatToString("##.##",99.993); // 数字格式化 0000.000, 前导零和尾随零, 使用(0)代替(#)占位符 formatToString("0000.000",999.99); // 数字格式化 $###.###.###, ($)表示美元符号, 拼接在字符串的最前面 formatToString("$###,###.###",99999.999); } static void formatToString(String pattern,Number number){ DecimalFormat decimalFormat = new DecimalFormat(pattern); String format = decimalFormat.format(number); System.out.println("number = " + format); } ------------------------------------------------------------------------------------------------------------------------------------------ 世界你好 成绩=100 HelloWorld 金额=99.990000 number = 131,415,926.99 number = 99.99 number = 0999.990 number = $99,999.999