3.6 设置输出的格式
使用 print 或 println 输出 double 值时,最多显示 16 位小数:
System.out.print(4.0 / 3.0);
结果如下:
1.3333333333333333
这可能比你想要的要多。System.out 提供了另一个方法 printf,让你对输出格式有更大的控制权,printf 中的 f 指的是“格式化”。以下是一个示例:
System.out.printf("Four thirds = %.3f", 4.0 / 3.0);
括号中的第一个值为格式字符串(format string),指定了输出的显示方式。上述的格式字符串中包含普通文本,普通文本的后面是格式说明符(format specifier)——以百分号打头的特殊序列。格式说明符 %.3f 指定接下来的值应显示为浮点数,并舍入到三位小数。上述代码的结果如下:
Four thirds = 1.333
格式字符串可包含任意数目的格式说明符,下面的格式字符串就包含了两个格式说明符:
int inch = 100;double cm = inch * CM_PER_INCH;System.out.printf("%d in = %f cm\n", inch, cm);
结果如下:
100 in = 254.000000 cm
与 print 一样,printf 也不在末尾换行;所以格式字符串通常以换行符结尾。
格式说明符 %d 用于显示整数值,其中的 d 表示 decimal(十进制)。值依次与格式说明符配对,因此,用于 inch 的格式说明符为 %d,用于 cm 的格式说明符为 %f。
学习格式字符串相当于学习 Java 中的一种子语言;涉及的选项很多,细节可能让人不可重负。表 3-1 列出了一些常用的格式说明符,旨在让你大致地了解其中的工作原理;更多细节请参阅 java.util.Formatter 的相关文档。要想找到有关 Java 类的文档,最简单的方法是在网上搜索 Java 和类名。
表3-1:格式说明符示例
%d | 十进制整数 | 12345 |
%08d | 添加前导零,确保显示的值至少包含 8 位 | 00012345 |
%f | 浮点数 | 6.789000 |
%.2f | 舍入到两位小数 | 6.79 |
