DecimalFormat анализирует Double.toString() представление (которое может быть в научной и финансовой форме).DecimalFormat и doubles
Почему Солнце выбрало этот подход вместо прямого преобразования двойного в String?
PS: Чтобы быть более конкретным. Почему DecimalFormat внутренне использует Double.toString(), чтобы форматировать Double, вместо форматирования внутреннего представления самого Double?
Что вы подразумеваете под «прямым преобразованием»? – Eddie
Можете ли вы уточнить, что вы спрашиваете? Я не знаю, что вы имеете в виду «прямое преобразование double в String». В OpenJDK Double.toString() возвращает String.valueOf (значение), где значение является примитивным двойным. Это, в свою очередь, дает Double.toString (d), который вызывает новый FloatingDecimal (d) .toJavaFormatString(), который, наконец, выполняет фактическую работу. –