Скажем, у меня есть:
double num = 893.148723
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(filePath)));
bw.write(String.format("%.1f",num));
Это запишет в файл 893.1. Однако есть ли способ установить точность для всего файла? Я буду выводить массу чисел, и мне не придется кодировать часть String.format () каждый раз, когда я пишу число.
А как насчет переопределения метода Double.toString ()?
Вы не можете. Это публичный выпускной класс Double




Даже если такой встроенной опции нет, вы можете создать свой собственный класс, расширяющий 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));
}
}
Кто-то должен отформатировать число, если вам нужна точность только до одной цифры. И у вас нет выбора, кроме как форматировать каждое отдельное число перед его записью.