如何在java中的printf()方法中表示long值?

时间:2015-02-16 09:34:13

标签: java printf

我记得我用C语言做过这个,但我无法在JAVA中使用它 如何在java ??

中的printf()方法中打印长值

我尝试使用下面的代码,我真正需要的是以十六进制方式打印长值,如下所示

长l = 32L -----> 0000000000000022

如果我使用%d,那么它会输出我不想要的整数值...

class TestPrintf(){
public static void main(String[] args){

long l =100L;

System.out.printf(“%l”+l); // Error unknown format exception
System.out.printf(“%d”+l); // Prints 100 I understood why it prints
System.out.printf(“%f”+l); // unknown illegal format conversion float != java.lang.long

}

}

2 个答案:

答案 0 :(得分:3)

您需要将实际参数作为printf()方法的下一个参数进行打印。连接不起作用。

System.out.printf("%d%n", 123);             // for ints and longs
System.out.printf("%d%n", 12345L);          // for ints and longs
System.out.printf("%f%n", (double) 12345L); // for floating point numbers

java.util.Formatter

中的完整文档

答案 1 :(得分:1)

如果你想要一个16个字符的零填充字符串,大写A-F,前缀为0x,你应该使用:

System.out.printf("0x%016X", l);