关于Java中printf()的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/29 21:13:27
public class Try2 {
public static void main(String [] args){
double t = 12;
System.out.printf("the number is: %12d",1200);
System.out.println();
System.out.printf("the number is: %12d",t);
System.out.println();
System.out.printf("the number is: %12d",12);
//System.out.println(120);
}

}

上面这段代码中,老是有异常说“d != java.lang.Double”
这是怎么回事?

System.out.printf("the number is: %12d",t);
有问题:
因为t是double,而%12d要求是整型,参照JAVA API的定义如下:
'd' 整数 结果被格式化为十进制整数
'o' 整数 结果被格式化为八进制整数
'x', 'X' 整数 结果被格式化为十六进制整数
'e', 'E' 浮点 结果被格式化为用计算机科学记数法表示的十进制数
'f' 浮点 结果被格式化为十进制数
'g', 'G' 浮点 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。
'a', 'A' 浮点 结果被格式化为带有效位数和指数的十六进制浮点数
还有问题可以参考“JAVA API”说明