Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要帮助打印小数点后1位吗_Java_Decimal_Decimalformat - Fatal编程技术网

Java 需要帮助打印小数点后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

我正在尝试将输出打印到小数点后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.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");