ACM-BufferedWriter---格式化输出浮点数
在 Java 中,BufferedWriter
本身不提供格式化功能,但可以结合 String.format()
或 PrintWriter
进行格式化浮点数输出。
方式 1:使用 String.format()
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterExample {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
double number = 123.456789;
String formattedNumber = String.format("%.2f", number); // 保留两位小数
writer.write(formattedNumber);
} catch (IOException e) {
e.printStackTrace();
}
}
}
方式 2:使用 PrintWriter
PrintWriter
支持直接格式化输出,并且可以包装 BufferedWriter
:
import java.io.*;
public class PrintWriterExample {
public static void main(String[] args) {
try (PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("output.txt")))) {
double number = 123.456789;
writer.printf("%.2f%n", number); // 格式化输出,保留两位小数
} catch (IOException e) {
e.printStackTrace();
}
}
}
方式 3:使用 DecimalFormat
如果需要更高级的格式化:
import java.io.*;
import java.text.DecimalFormat;
public class DecimalFormatExample {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
double number = 123.456789;
DecimalFormat df = new DecimalFormat("#.00"); // 保留两位小数
writer.write(df.format(number));
} catch (IOException e) {
e.printStackTrace();
}
}
}
这三种方式都可以让 BufferedWriter
格式化输出浮点数,推荐使用 String.format()
或 PrintWriter.printf()
,它们更简洁直观。