如何使用System.out.printf
我试图使用printf
但我有意想不到的错误。
这段代码的错误是什么:
System.out.printf("The date is %d/%d/%d", month,day,year);
我想打印日期和month
, day
和year
都是双变量。
根据Formatter文档 , %d
是整数值的转换,不适用于双精度数。 你会想要将它们转换为整数。 无论如何,为什么你将月,日和年表示为浮点数? 使用Date
并使用适当的格式化器来表示日期值会更好。
如果必须对这些值使用双精度数,则需要%f
而不是%d
。
像C的sprintf一样,可以使用静态方法String.format
格式化字符串:
// Format a string containing a date. import java.util.Calendar; import java.util.GregorianCalendar; import static java.util.Calendar.*; Calendar c = new GregorianCalendar(1995, MAY, 23); String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c); // -> s == "Duke's Birthday: May 23, 1995"
更正了代码
System.out.printf("The date is %f/%f/%f", month,day,year);