对齐数字有问题
Trouble with aligning numbers
如果这样的问题的答案已经存在,我很抱歉,我是一个非常新手的编码员,我可能没有找到它。
我正在做一个项目,根据三个点的 x 和 y 值给出距离、周长和面积。所说的点应该使用 printf 命令四舍五入到千位。
它应该是这样的:
三角形 ={(8.500 ,1.250) ,(2.500 ,1.250) ,(2.500 ,9.250)}
然而,我只能设法得到:
三角形 = { ( 8.5001.2502.5001.2502.5009.250
这是我的代码:
public class TriangleCalculator
{
public static void main(String[] args)
{
System.out.println("Enter the x- and y- coordinates of the first point");
Scanner keyBoard = new Scanner (System.in);
double pointOneX = keyBoard.nextDouble();
double pointOneY = keyBoard.nextDouble();
System.out.println("Enter the x- and y- coordinates of the second point");
double pointTwoX = keyBoard.nextDouble();
double pointTwoY = keyBoard.nextDouble();
System.out.println("Enter the x- and y- coordinates of the third point");
double pointThreeX = keyBoard.nextDouble();
double pointThreeY = keyBoard.nextDouble();
System.out.printf("Triangle = { ( %.3f", pointOneX);
System.out.printf("%.3f", pointOneY);
System.out.printf("%.3f", pointTwoX);
System.out.printf("%.3f", pointTwoY);
System.out.printf("%.3f", pointThreeX);
System.out.printf("%.3f", pointThreeY);
}
}
如果有人能告诉或展示如何正确编写 printf 语句或如何正确对齐我的代码,我将不胜感激。
您的代码不会自行添加括号。
尝试:
System.out.printf("%.3f", pointOneY);
System.out.printf("),(");
System.out.printf("%.3f", pointTwoX);
System.out.printf("%.3f", pointTwoY);
System.out.printf("),(");
System.out.printf("%.3f", pointThreeX);
System.out.printf("%.3f", pointThreeY);
System.out.printf(")}");
我在你的问题中没有看到任何关于对齐的信息,只有舍入和格式。
您可以,在这种情况下,我认为您应该在一个 printf
调用中处理多个数据项:
System.out.printf ("Triangle ={(%.3f ,%.3f) ,(%.3f ,%.3f) ,(%.3f ,%.3f)}",
pointOneX, pointOneY, pointTwoX, pointTwoY, pointThreeX, pointThreeY);
这是针对您示例中不寻常的间距。对于每个逗号之前没有 space,或者每个逗号之前 和之后 没有 space,或者每个逗号之后只有 space ] 每个逗号,相应地调整格式字符串。
记住 printf
不会终止输出行。如果需要,在可移植代码中,在格式字符串的末尾添加 %n
,或者对于 Unix 或 Windows,特别是 \n
或 \r\n
.
如果这样的问题的答案已经存在,我很抱歉,我是一个非常新手的编码员,我可能没有找到它。
我正在做一个项目,根据三个点的 x 和 y 值给出距离、周长和面积。所说的点应该使用 printf 命令四舍五入到千位。
它应该是这样的:
三角形 ={(8.500 ,1.250) ,(2.500 ,1.250) ,(2.500 ,9.250)}
然而,我只能设法得到:
三角形 = { ( 8.5001.2502.5001.2502.5009.250
这是我的代码:
public class TriangleCalculator
{
public static void main(String[] args)
{
System.out.println("Enter the x- and y- coordinates of the first point");
Scanner keyBoard = new Scanner (System.in);
double pointOneX = keyBoard.nextDouble();
double pointOneY = keyBoard.nextDouble();
System.out.println("Enter the x- and y- coordinates of the second point");
double pointTwoX = keyBoard.nextDouble();
double pointTwoY = keyBoard.nextDouble();
System.out.println("Enter the x- and y- coordinates of the third point");
double pointThreeX = keyBoard.nextDouble();
double pointThreeY = keyBoard.nextDouble();
System.out.printf("Triangle = { ( %.3f", pointOneX);
System.out.printf("%.3f", pointOneY);
System.out.printf("%.3f", pointTwoX);
System.out.printf("%.3f", pointTwoY);
System.out.printf("%.3f", pointThreeX);
System.out.printf("%.3f", pointThreeY);
}
}
如果有人能告诉或展示如何正确编写 printf 语句或如何正确对齐我的代码,我将不胜感激。
您的代码不会自行添加括号。
尝试:
System.out.printf("%.3f", pointOneY);
System.out.printf("),(");
System.out.printf("%.3f", pointTwoX);
System.out.printf("%.3f", pointTwoY);
System.out.printf("),(");
System.out.printf("%.3f", pointThreeX);
System.out.printf("%.3f", pointThreeY);
System.out.printf(")}");
我在你的问题中没有看到任何关于对齐的信息,只有舍入和格式。
您可以,在这种情况下,我认为您应该在一个 printf
调用中处理多个数据项:
System.out.printf ("Triangle ={(%.3f ,%.3f) ,(%.3f ,%.3f) ,(%.3f ,%.3f)}",
pointOneX, pointOneY, pointTwoX, pointTwoY, pointThreeX, pointThreeY);
这是针对您示例中不寻常的间距。对于每个逗号之前没有 space,或者每个逗号之前 和之后 没有 space,或者每个逗号之后只有 space ] 每个逗号,相应地调整格式字符串。
记住 printf
不会终止输出行。如果需要,在可移植代码中,在格式字符串的末尾添加 %n
,或者对于 Unix 或 Windows,特别是 \n
或 \r\n
.