我目前正在尝试将我的程序舍入到2位小数,但似乎无法执行。 这是我的代码:
double ounce;
double grams;
grams = 0.00;
System.out.println("This programme will print a table that can be used to convert ounces to grams, from values 1-15.");
System.out.println("One ounce is equal to 28.35 grams.\n\nOunces \t\t\t Grams");
ounce = 0;
do {
ounce++;
grams+=28.35;
System.out.println((""+ounce+"\t\t\t"+grams+""));
} while (ounce <15);
输出如下:
Ounces Grams
1.0 28.35
2.0 56.7
3.0 85.05000000000001
4.0 113.4
5.0 141.75
6.0 170.1
7.0 198.45
8.0 226.79999999999998
9.0 255.14999999999998
10.0 283.5
11.0 311.85
12.0 340.20000000000005
13.0 368.55000000000007
14.0 396.9000000000001
15.0 425.2500000000001
最后,我的数字在&#34;克&#34;没有准确对齐。任何想法如何让他们完美对齐?
答案 0 :(得分:4)
您可以使用另一种输出方法:
System.out.format("%f%5f\n",ounce, gramsFormated);
您可以决定自己的宽度。在这个例子中它是5。
答案 1 :(得分:3)
如果您希望正确对齐和舍入到正确的位数,您可以使用System.out.format
方法,如Mosa建议的那样。
System.out.format("%5.2f%20.2f%n", ounce, grams);
注意:
%n
,而不是\n
。%5.2f
说:在5个字符宽的字段中打印第一个参数,小数点后面有两个数字。%20.2f
对第二个参数执行相同操作,只将字段定义为20个字符宽。这也会在两列之间创建间距。当然,你可以改变那个宽度。