格式化输出的使用方法。(printf)
double amount = 12618.98;
double interestRate = 0.0013;
double interest = amount * interestRate;
System.out.println("Interest is $" + interest);
//下面的这样仍然不行
System.out.println("Interest is $" + (int)(interest * 100) / 100.00);
//通过printf来输出格式化要求
System.out.printf("Interest is $%4.2f", interest);
System.out.printf(format, item1, item2,,,,itemk)
这里的format是指一个由字串和格式标识符构成的字符串。
格式标识符指定的每一个条目应该如何显示。这里的条目可以是数值、字符、布尔值或字符串。简单的格式标识符是以百分号(%)开头的转换码。
举一个例子:
int count = 5;
double amount = 45.56;
System.out.println("count is %d and amount is %f",count,amount);
条目与标识符必须在次序、数量和类型上匹配。默认情况下,浮点值显示小数点后6位数字。可以在标识符中指定宽度和精度。
如果一个条目需要比指定宽度更多的空间,宽度自动增加。默认情况下输出是右对齐的。可以在格式标识符中放一个负号(-),表明该条目在特定区域的输出是左对齐的。
System.out.printf("%3d#%2s#%4.2f\n", 1234, "Java", 51.6653);
//输出
1234#Java#51.67
System.out.printf("%8d%8s%8.1f \n",1234, "Java", 5.63);
System.out.printf("%-8d%-8s%-8.1f \n",1234, "Java", 5.63);
//输出
1234 Java 5.6
1234 Java 5.6
注:条目和格式标识符必须在类型上严格匹配。对应于格式标识符%f或%e的条目必须是浮点类型。例如:是40.0而不是40。因此,int型变量不能匹配%f或%e。
//Display the header of the table
System.out.printf("%-10s%-10s%-10s%-10s%-10s\n", "Degress", "Radians", "Sine", "Cosine", "Tangent");
int degrees = 30;
double radians = Math.toRadians(degrees);
System.out.printf("%-10d%-10.4f%-10.4f%-10.4f%-10.4f\n", degrees, radians, Math.sin(radians),Math.cos(radians),Math.tan(radians));
degrees = 60;
radians = Math.toRadians(degrees);
System.out.printf("%-10d%-10.4f%-10.4f%-10.4f%-10.4f\n", degrees, radians, Math.sin(radians),Math.cos(radians),Math.tan(radians));