Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中对齐双精度列表中的小数_Java_Alignment_Double_Decimal - Fatal编程技术网

在Java中对齐双精度列表中的小数

在Java中对齐双精度列表中的小数,java,alignment,double,decimal,Java,Alignment,Double,Decimal,以下是代码部分: System.out.println("The values of pi from term " + (userNum - 9) + " to term " + userNum + " are:"); for (int x = 1; x < userNum; x++) { if (x % 2 == 1) sum = sum + (4.0

以下是代码部分:

    System.out.println("The values of pi from term " + (userNum - 9) + " to term " + userNum + " are:");        
        for (int x = 1; x < userNum; x++) 
            {
                if (x % 2 == 1)
                    sum = sum + (4.0/(2 * x - 1));
                else
                    sum = sum - (4.0/(2 * x - 1));
            System.out.println("Term " + (x) + ": " + sum);
            }
第10项的小数需要与其他项对齐。如何在Java中实现这一点?谢谢。

如果您使用,您可以使用
StringUtils
类来完成您需要的:

System.out.println("Term " + 
    StringUtils.leftPad("" + x, (userNum.length() - x.length()), ' ')
      + ": " + sum);
如果使用,则可以使用
StringUtils
类来完成所需的工作:

System.out.println("Term " + 
    StringUtils.leftPad("" + x, (userNum.length() - x.length()), ' ')
      + ": " + sum);

System.out.printf
类似于(但不是)C printf方法。您可以使用它执行以下操作:

int spaces = (int)Math.log10(Math.abs(userNum)) + 1;
String myFormat = "Term %" + spaces +"d: %.10f\n";

//inside the for loop
System.out.printf(myFormat , x, sum);
已编辑:可以使用%2d使数字使用2个空格,如果该数字更大,则将使用更多空格

更多信息:

  • (搜索printf方法)

System.out.printf类似于(但不是)C printf方法。您可以使用它执行以下操作:

int spaces = (int)Math.log10(Math.abs(userNum)) + 1;
String myFormat = "Term %" + spaces +"d: %.10f\n";

//inside the for loop
System.out.printf(myFormat , x, sum);
已编辑:可以使用%2d使数字使用2个空格,如果该数字更大,则将使用更多空格

更多信息:

  • (搜索printf方法)

您似乎想根据
x
的位数在
术语之后添加空格:

    int j = String.valueOf(x).length();
    String sp = "";
    while( j++ < String.valueOf(userNum).length() )
        sp += " ";
    System.out.printf("Term %s %d : %.15f\n", sp, x, sum);
int j=String.valueOf(x).length();
字符串sp=“”;
而(j++
您似乎希望根据
x
的位数在
术语之后添加空格:

    int j = String.valueOf(x).length();
    String sp = "";
    while( j++ < String.valueOf(userNum).length() )
        sp += " ";
    System.out.printf("Term %s %d : %.15f\n", sp, x, sum);
int j=String.valueOf(x).length();
字符串sp=“”;
而(j++
使用
System.out.printf(…)
String.format(…)
。API将向您展示如何使用它们;除非与实际值一起使用,否则它似乎无法正常工作。有没有一种方法可以使用变量(在本例中为“sum”)执行printf?我还没有尝试String.format;我在API中读到过这方面的内容,但我只是最近才开始编程,而且对Java非常陌生——我真的不知道如何将它应用到我的特定代码中。感谢Jeffrey和Hovercraft。
“我试过printf;除非与实际值一起使用,否则它似乎不太好用。”
:我不理解你在这里的说法。这是最好的解决办法。如果你已经尝试过,那么你应该向我们展示你是如何尝试的,你的输出是什么。String.format的工作原理与printf相同,只是它返回一个字符串,以后可以打印出来。@LuiggiMendoza这是一个答案。@CaptainGiraffe我仔细考虑了一分钟,并将其转换为答案。谢谢使用
System.out.printf(…)
String.format(…)
。API将向您展示如何使用它们;除非与实际值一起使用,否则它似乎无法正常工作。有没有一种方法可以使用变量(在本例中为“sum”)执行printf?我还没有尝试String.format;我在API中读到过这方面的内容,但我只是最近才开始编程,而且对Java非常陌生——我真的不知道如何将它应用到我的特定代码中。感谢Jeffrey和Hovercraft。
“我试过printf;除非与实际值一起使用,否则它似乎不太好用。”
:我不理解你在这里的说法。这是最好的解决办法。如果你已经尝试过,那么你应该向我们展示你是如何尝试的,你的输出是什么。String.format的工作原理与printf相同,只是它返回一个字符串,以后可以打印出来。@LuiggiMendoza这是一个答案。@CaptainGiraffe我仔细考虑了一分钟,并将其转换为答案。谢谢看了你的sp技巧后,我编辑了我的答案。在评论/帖子中使用printf之前,你应该先学会使用它。另外,你知道吗,你可以通过使用
(int)Math.log10(Math.abs(longVar))+1来获得数字中的位数(在长数字范围内)
(比将数字转换为字符串还要快)。谢谢JR。我将使用它。OP,如前所述,在
%2d
或%3d中正确使用
printf
,如果
userNum>100
,则使用%3d。好的,基于此编辑答案,我没有注意到这一事实。在使用sp技巧看到您的答案后,我编辑了我的答案。在评论/帖子中使用printf之前,你应该先学会使用它。另外,你知道吗,你可以通过使用
(int)Math.log10(Math.abs(longVar))+1来获得数字中的位数(在长数字范围内)
(比将数字转换为字符串还要快)。谢谢JR。我将使用它。OP,如前所述,在
%2d
或%3d中正确使用
printf
,如果
userNum>100
好的话,根据它编辑答案,我没有注意到这个事实。@Luigi,我正在为这个程序调整它。谢谢你指点方向。别担心,这就是答案的目的,解决真正的问题,或者作为解决问题的基础。@user1519533我再次编辑了我的答案,基于后面的空格(只有在你需要的情况下)。我发现我错拼了你的名字。。。谢谢你的更新。我已经玩了一点,它工作得很好。@Luigi,我正在为这个项目调整它。谢谢你指点方向。别担心,这就是答案的目的,解决真正的问题,或者作为解决问题的基础。@user1519533我再次编辑了我的答案,基于后面的空格(只有在你需要的情况下)。我发现我错拼了你的名字。。。谢谢你的更新。我玩了一点,效果很好。