整个文件的Java BufferedWriter精度

整个文件的Java BufferedWriter精度,java,file,output,precision,bufferedwriter,Java,File,Output,Precision,Bufferedwriter,假设我有: double num = 893.148723 BufferedWriter bw = new BufferedWriter(new FileWriter(new File(filePath))); bw.write(String.format("%.1f",num)); 这将向文件写入893.1。但是,有没有办法设置整个文件的精度?我将输出大量的数字,不必每次写数字时都对String.format()部分进行编码。即使没有这样的内置选项,您也可以创建自己的类扩展BufferedW

假设我有:

double num = 893.148723
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(filePath)));
bw.write(String.format("%.1f",num));

这将向文件写入893.1。但是,有没有办法设置整个文件的精度?我将输出大量的数字,不必每次写数字时都对String.format()部分进行编码。

即使没有这样的内置选项,您也可以创建自己的类扩展
BufferedWriter

public class BufferedWriterWithFormat extends BufferedWriter {
    private String format;

    public BufferedWriterWithFormat(Writer w, String format) {
        super(w);
        this.format = format;
    }

    public void write(double d) throws IOException {
        write(String.format(format, d));
    }
} 

即使没有这样的内置选项,您也可以创建自己的类扩展
BufferedWriter

public class BufferedWriterWithFormat extends BufferedWriter {
    private String format;

    public BufferedWriterWithFormat(Writer w, String format) {
        super(w);
        this.format = format;
    }

    public void write(double d) throws IOException {
        write(String.format(format, d));
    }
} 

如果你只需要一位数的精度,就必须有人格式化数字。在编写之前,您别无选择,只能格式化每个数字。重写Double.toString()方法怎么样?您不能。这是公开的最后一个类,如果你只需要一位数的精度,就必须格式化数字。在编写之前,您别无选择,只能格式化每个数字。重写Double.toString()方法怎么样?您不能。这是公开的最后一堂课