Java 需要帮助打印小数点后1位吗
我正在尝试将输出打印到小数点后1位。我尝试使用Java 需要帮助打印小数点后1位吗,java,decimal,decimalformat,Java,Decimal,Decimalformat,我正在尝试将输出打印到小数点后1位。我尝试使用DecimalFormat,但这会打乱输出的对齐方式。 以下是我使用十进制格式之前的输出: ID计划中期最终加权平均数 ------------------------------------- 1212 90.0 85.0 92.0 89.300000000000001通行证 6666 60.0 80.0 90.0 78.0通过 777790.090.090.090.0通过 888895.087.093.091.8通过 999975.077.073
DecimalFormat
,但这会打乱输出的对齐方式。
以下是我使用十进制格式之前的输出:
ID计划中期最终加权平均数
-------------------------------------
1212 90.0 85.0 92.0 89.300000000000001通行证
6666 60.0 80.0 90.0 78.0通过
777790.090.090.090.0通过
888895.087.093.091.8通过
999975.077.073.074.8通过
下面是我使用十进制格式后的情况:
ID课程中期期末加权平均课程成绩
--------------------------------------------
121290.085.092.089.3通过
6666 60.0 80.0 90.0 78传球
777790.090.090.090通过
888895.087.093.091.8通过
999975.077.073.074.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 );
您必须设置小数的最小数量:
df.setMinimumFractionDigits(1);
使用
而不是
df.format()
无需使用十进制格式您可以通过更改一个字符来完成所需操作:如果您希望始终显示一个小数位,即使该数字为零,也可以在格式字符串中使用.0
而不是.
。以下是文档:
然后,代码段的第一行是:
DecimalFormat df = new DecimalFormat("#.0");
DecimalFormat df = new DecimalFormat("#.0");