DecimalFormat, по-видимому, игнорирует шаблон для десятичной части числа.
DecimalFormat formatter = (DecimalFormat) NumberFormat.getNumberInstance(locale);
formatter.applyPattern("##0.0E");
String text = formatter.format(Double.valueOf(1234.5678));
// text is 1.235E3
Почему не возвращается 1.2E3?