在使用PrintWriter时,是否有方法格式化小数点,而不使用;格式";Java中的函数?
我正在将数据写入一个文件,以便进行Java模拟。我的代码如下所示:在使用PrintWriter时,是否有方法格式化小数点,而不使用;格式";Java中的函数?,java,formatting,format,filewriter,printwriter,Java,Formatting,Format,Filewriter,Printwriter,我正在将数据写入一个文件,以便进行Java模拟。我的代码如下所示: try (PrintWriter out = new PrintWriter(new FileWriter("data/test.dat", true));) { out.print(DecimalPointData); out.print("\t"); out.print(OtherData); out.print("\n");
try (PrintWriter out = new PrintWriter(new FileWriter("data/test.dat", true));)
{
out.print(DecimalPointData);
out.print("\t");
out.print(OtherData);
out.print("\n");
} catch (IOException {
e.printStackTrace();
}
-1.075
0.0
-1.092
0.0
-1.075
0.0
这会打印出如下数据:
-1.0749999955296516 0.0
-1.0919999964535236 0.0
-1.0749999955296516 0.0
-0.5339999794960022 0.0
我知道java中的数据可以使用.format格式化,也就是说,如果我可以说
out.format("%.3f%n",DecimalPointData);
而不是
out.print(DecimalPointData);
但是我不想在我的代码中使用它,因为当我写入文件时,列看起来没有方向,我的文件数据看起来像这样:
try (PrintWriter out = new PrintWriter(new FileWriter("data/test.dat", true));)
{
out.print(DecimalPointData);
out.print("\t");
out.print(OtherData);
out.print("\n");
} catch (IOException {
e.printStackTrace();
}
-1.075
0.0
-1.092
0.0
-1.075
0.0
格式化时还有什么我需要知道的吗?或者,在java中使用“format”函数是否有其他方法格式化小数点 来自:
%n是独立于平台的换行符
只需从格式
参数中删除%n
:
out.format("%.3f",DecimalPointData);
所以你可以写:
out.format("%.3f", DecimalPointData);
out.print("\t");
out.println(OtherData);
或更简单:
out.format("%.3f\t%.1f%n", DecimalPointData, OtherData);
请参阅上的运行说明。您可以使用单一格式写入一行
out.format("%.3f %.1f%n",DecimalPointData, OtherData);
编辑:
如果要在输出中添加选项卡,请使用以下格式字符串
out.format("%.3f\t%.1f%n",DecimalPointData, OtherData);
如果没有帮助,那么我在文件中的数据最终看起来是这样的:-1.075 0.0-1.092 0.0-1.075,它会按行打印,而不是按列编辑我的答案,以保持清晰。工作完美谢谢,如果我有第三组数据,我只会将其更改为“%.3f%.1f%.1f%n”?正确答案,但是它缺少问题中的制表符
\t
。@neo su:是的,您可以根据需要添加更多数据。您可以使用格式字符串来控制数据的格式。如果您不介意的话,还有一个问题,在打印完所有数字后,如何打印空行。我知道我只需说出out.print(“\n”)就可以打印空行,但这会在每行之间打印空行。添加out.print(“\n”);打印完所有数据后