Java中的Printf问题

Java中的Printf问题,java,printf,Java,Printf,我的printf语句在Java中遇到了一些问题。我的代码工作正常,因为我已经用println对它进行了测试,我只需要获得正确的间距,这就是为什么我需要使用printf。我尝试了许多方法来分隔字符串和变量。我认为问题的一部分是我必须使用“$”,这会干扰printf语句。这是一个学校项目的一部分,所以这就是为什么我必须使用printf,而不仅仅是做println任务。我的代码如下 for(double ten = 10.00; ten < 15.00; ten = ten + .75){

我的printf语句在Java中遇到了一些问题。我的代码工作正常,因为我已经用println对它进行了测试,我只需要获得正确的间距,这就是为什么我需要使用printf。我尝试了许多方法来分隔字符串和变量。我认为问题的一部分是我必须使用“$”,这会干扰printf语句。这是一个学校项目的一部分,所以这就是为什么我必须使用printf,而不仅仅是做println任务。我的代码如下

for(double ten = 10.00; ten < 15.00; ten = ten + .75){
        /**
         * We use the variable tip to calculate a %20 tip and we use the
         * variable totalWithTip to calculate the total of the dinner price
         * and the tip added together.
         */
        double tip = ten * .2;
        double totalWithTip = ten + tip;

        System.out.printf("$%7s%4.2d$%13s%4.2d$%13s%4.2d\n", ten, tip, totalWithTip);
    }
双精度(或浮点)只需%f,小数点位由.2指定

对于空格,可以使用前缀为空格数的“c”字符。例如,%6c将打印6个字符

System.out.printf("$%.2f%6c$%.2f%6c$%.2f\n", ten, ' ', tip,' ',totalWithTip);
双精度(或浮点)只需%f,小数点位由.2指定

对于空格,可以使用前缀为空格数的“c”字符。例如,%6c将打印6个字符

System.out.printf("$%.2f%6c$%.2f%6c$%.2f\n", ten, ' ', tip,' ',totalWithTip);

在您的情况下,这可能是一个解决方案:

System.out.printf("%7s$%4.2f%13s$ %4.2f%13s$%4.2f\n"," ",  ten, " ", tip, " ", totalWithTip);

在您的示例中,空格放在数据之后。此外,双精度(或浮点)只需要%f,用.2指定小数点。

在您的情况下,这可能是一种解决方案:

System.out.printf("%7s$%4.2f%13s$ %4.2f%13s$%4.2f\n"," ",  ten, " ", tip, " ", totalWithTip);
在您的示例中,空格放在数据之后。此外,双精度(或浮点)只需%f,小数点位由.2指定。

另一种选择:

System.out.printf("%7s$%-13.2f$%-13.2f$%-13.2f\n", " ", ten, tip, totalWithTip);
“-”将参数的输出向左对齐,并在右侧添加填充字符。

另一种选择:

System.out.printf("%7s$%-13.2f$%-13.2f$%-13.2f\n", " ", ten, tip, totalWithTip);

“-”将参数的输出向左对齐,并在右侧添加填充字符。

谢谢,这解决了我的小数点问题,但没有解决我的间距问题!我应该在第一个空格前加一个%6d吗?检查修改后的答案问题,如何在中间一栏加空格?$2.00在数字和美元符号之间有一个空格。谢谢,这解决了我的小数点问题,但这并不能解决我的间距问题!我应该在第一个空格前加一个%6d吗?检查修改后的答案问题,如何在中间一栏加空格?2美元在数字和美元符号之间有一个空格。谢谢!这是超级接近!!!我想我需要在十点之前加上一个“”并留出一定的间隔,我会马上告诉你!没有解释的代码转储是糟糕的答案。一个好的答案解释了错误,以及你如何和为什么纠正它。很好的回答!我已经把它们聚合成一行了。但问题是,如何为中间的列添加空间?$2.00在数字和美元符号之间有一个空格。如果该空格是永久性的,您可以在适用的情况下将其包含在模板中。请参阅更新的示例。谢谢!这是超级接近!!!我想我需要在十点之前加上一个“”并留出一定的间隔,我会马上告诉你!没有解释的代码转储是糟糕的答案。一个好的答案解释了错误,以及你如何和为什么纠正它。很好的回答!我已经把它们聚合成一行了。但问题是,如何为中间的列添加空间?$2.00在数字和美元符号之间有一个空格。如果该空格是永久性的,您可以在适用的情况下将其包含在模板中。请参见更新的示例。