Java 如何使用printf分隔多个十进制数字,并将所有这些数字四舍五入到小数点后2位

Java 如何使用printf分隔多个十进制数字,并将所有这些数字四舍五入到小数点后2位,java,printf,Java,Printf,我想使用printf来组织我的代码结果。我的代码的结果将有四个十进制数。所有这些数字必须四舍五入到小数点后两位,并组织在同一行中 我不知道如何使用printf,我只知道%.2f可以将我的答案四舍五入到小数点后两位,其余的我不知道怎么做 import java.util.Scanner; import java.text.DecimalFormat; import java.io.PrintWriter; public class CirclePoints { public static

我想使用
printf
来组织我的代码结果。我的代码的结果将有四个十进制数。所有这些数字必须四舍五入到小数点后两位,并组织在同一行中

我不知道如何使用
printf
,我只知道
%.2f
可以将我的答案四舍五入到小数点后两位,其余的我不知道怎么做

import java.util.Scanner;
import java.text.DecimalFormat;
import java.io.PrintWriter;
public class CirclePoints
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);

        System.out.println("Please enter the radius of your circle: ");
        double radius = in.nextDouble();

        double x = 1.0;
        double z = x;
        double absY;
        double y1D;
        double y2D;
        double y1;
        double y2;

        System.out.println("Point on a circle with radius: " + radius);

        //System.out.printf(); want to get something like (x   y1   x   y2) as the reult that can match the bottom
        while(x >= -(z))
        {
            y1D = Math.sqrt((Math.pow(radius, 2) - Math.pow(x, 2)));
            y2D = -(Math.sqrt((Math.pow(radius, 2) - Math.pow(x, 2))));
            System.out.printf ("%.2f",x, y1D, y2D );
            x = x-0.1;
        }
    } 
}
实际输出应该是

x y1 x y2

1.00 0.00 1.00 0.00

0.90 0.44 0.90-0.44

-0.90 0.44 0.90-0.44


-1.00 0.00-1.00 0.00

java中有4种不同的生成打印方法。默认情况下,
Java.lang
包已经导入到所有Java类中,所以系统类就在其中。其中三种打印方法前面都是
System.out.
。它们是
System.out.print
System.out.println
System.out.printf
print
println
之间没有区别,只是执行后,
println
(打印行)转到新行。
printf
被称为打印格式,这意味着我们可以使用
%
字符来表示特殊情况。如
%n
指示和
%t
新选项卡<代码>%.2f带两个小数点的平均浮点值,将四舍五入到最接近的值

如上所述,第四种打印方法用于表示错误结果。语法应该是
System.err
,而不是
System.out
。与正常的
out.print
方法和这些
err.print
方法没有区别,但输出为红色

对于您的代码更改

System.out.printf(“%.2f”,x,y1D,y2D)


System.out.printf(“%.2f%.2f%.2f%.2f%.2f%n”,x,y1D,x,y2D)

当用户输入等于1时,应显示此结果。很抱歉在问题中没有这么说。我真的很感谢你的帮助,但是当我尝试你所说的改变我的代码时,我运行它时它只显示了第一个x。我还忘了放另一个x,它应该在y1D和y2D之间。使用“while”循环的目的是什么?要运行10倍的代码吗?我希望它只要在x和-x之间就可以运行。例如,如果x等于1,那么它应该给出输出1.00、0.90、0.80-0.80,-0.90,-1.00试试这个System.out.printf(“%.2f%.2f%.2f%.2f%.2f%n”,x,y1D,x,y2D);