在Java中使用printf格式化数字数据

首先,我们采用了一个double变量并将其显示两次。

double d = 399.8877;
System.out.printf("d1 = %2$f d2 = %1$g", d, d);

在那之后,我们格式化了数值int数据-

int val1 = 90, val2 = 35, val3 = 88, val4 = 600;
System.out.printf("\nval1 = %d, val2 = %x, val3 = %o, val4 = %d", val1, val2, val3, val4);
System.out.printf("\nval2 = %4$d, val2 = %3$d, val3 = %2$o, val4 = %1$d", val1, val2, val3, val4);

上面,我们显示了%o代表八进制,%x代表十六进制,%d代表整数等。

以下是完整的示例-

示例

public class Demo {
   public static void main(String[] args) throws Exception {
      int val1 = 90, val2 = 35, val3 = 88, val4 = 600;
      double d = 399.8877;
      System.out.printf("d1 = %2$f d2 = %1$g", d, d);
      System.out.printf("\nval1 = %d, val2 = %x, val3 = %o, val4 = %d", val1, val2, val3, val4);
      System.out.printf("\nval2 = %4$d, val2 = %3$d, val3 = %2$o, val4 = %1$d", val1, val2, val3, val4);
   } 
}

输出结果

d1 = 399.887700 d2 = 399.888
val1 = 90, val2 = 23, val3 = 130, val4 = 600
val2 = 600, val2 = 88, val3 = 43, val4 = 90