我正试图将输出打印到小数点后1位。我尝试过使用DecimalFormat
,但它扰乱了我输出的对齐。以下是我使用DecimalFormat
:之前的输出
ID程序中期最终加权平均
-----------------------------------------------
1212 90.0 85.0 92.0 89.300000000001通过
6666 60.0 80.0 90.0 78.0通过
7777 90.0 90.0 90.0通过
8888 95.0 87.0 93.0 91.8通过
9999 75.0 77.0 73.0 74.8通过
这是我使用DecimalFormat
:后的样子
ID课程中期最终加权平均课程等级
----------------------------------------------------
1212 90.0 85.0 92.0 89.3通过
6666 60.0 80.0 90.0 78通过
7777 90.0 90.0 90.0通过
8888 95.0 87.0 93.0 91.8通过
9999 75.0 77.0 73.0 74.8通过
这是我正在使用的代码:
DecimalFormat df = new DecimalFormat("#.#");
double Program = inputFile.nextDouble(); //Programs
double Midterm = inputFile.nextDouble(); //Midterm
double Final = inputFile.nextDouble(); //Final
double WAverage = (Program * WProgram) + (Midterm * WMidterm)+
(Final * WFinal);
classAve = classAve +WAverage;
NumStudents++;
String ResultsString = new String(" Fail");
if (WAverage >= 70)
ResultsString = " Pass";
System.out.println(ID +" " + Program +" "+ Midterm +" "+ Final +
" "+ df.format(WAverage) +" " +ResultsString );
使用
String.format("%.1f", WAverage);
代替
df.format()
无需DecimalFormat
您必须设置最小小数位数:
df.setMinimumFractionDigits(1);
您可以通过更改一个字符来完成您想要的操作:如果您希望始终显示一个小数位,即使该数字为零,也可以在格式字符串中使用.0
而不是.#
。以下是文档:http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html
那么代码片段的第一行将是:
DecimalFormat df = new DecimalFormat("#.0");