Java格式化打印及数字格式化

一、格式化打印

格式说明符以百分号(%)开头,以转换器结尾

转换器是一个字符,指示要格式化的参数的类型

在百分号(%)和转换器之间,您可以具有可选的标志和说明符

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
posted @ 2021-10-19 19:14  柯南剧场版  阅读(523)  评论(0编辑  收藏  举报