如何在一个 printf 语句中使用多个输出格式化程序?

问题描述 投票:0回答:1

我正在尝试编写一个 printf 语句,该语句添加空格并将双精度舍入到小数点后四位。我只是不确定如何格式化 printf 语句以允许一个变量同时使用“%-10s”和“%.4f”。谢谢您的帮助!

public static void main(String[] args) {
        final int NUM_RANGE = 86;      //allows for [0,176] range in loop output
        int i;                         //iteration index
        double oddNum = 1.0000;        //initialized as first odd num possible
        double evenNum = 0.0000;       //initialized as first even num possible
        double numSqred = Math.sqrt(oddNum + evenNum);
        
        System.out.printf("%-10s",oddNum);    //prints initial odd num
        System.out.printf("%-10s", evenNum);   //prints initial even num
        System.out.printf("%.4f \n" ,numSqred);
        
        for (i = 0; i < NUM_RANGE; ++i) {
            //updates oddNum to next odd number for each iteration
            oddNum += 2;                     
            System.out.printf("%-10s",oddNum); 
            //updates evenNum to next odd number for each iteration
            evenNum += 2;
            System.out.printf("%-10s", evenNum);
            //update numSqred for new odd and even num
            numSqred = Math.sqrt(oddNum + evenNum);
            System.out.printf("%.4f \n" ,numSqred);
        }    

我尝试用逗号和“+”分隔“%-10s”和“%.4f”,并期望它们都将格式应用于一个变量,但它不起作用。我已经尝试查找如何执行此操作,但到目前为止我还没有找到任何东西。

java printf
1个回答
0
投票

'...我只是不确定如何格式化 printf 语句以允许一个变量同时使用“%-10s”和“%.4f”。 ...'

您可以提供 width 值。

%[argument_index$][flags][width][.precision]conversion
%-10.4f
© www.soinside.com 2019 - 2024. All rights reserved.