Форматировать значения типа double, используя не более пяти цифр, при необходимости округляя десятичные цифры

У меня есть двойные значения, которые я хотел бы преобразовать в значения String с следующие ограничения формата:

количество_дробных_цифр = max( 0, 5 - количество_целых_цифр )

По сути, я хочу сохранить количество цифр до 5, если это возможно, округляя десятичные цифры, если это необходимо. Например:

 float          String
-------------------------
     1               1
   100             100
100000          100000
 99999           99999
 99999.99        99999
  9999.99         9999.9
   999.99          999.99
    23.34324        23.343

Я рассматривал возможность использования DecimalFormat, но, насколько я могу судить, это не совсем то, что мне нужно.

Это позволяет установить максимальное количество десятичных цифр, используя setMaximumFractionDigits(), но, насколько я могу судить, мне пришлось бы вычислять количество целых цифр и выполнять приведенный выше расчет самостоятельно.

Таким образом, основной вопрос заключается в том, существует ли хороший, чистый встроенный способ форматирования чисел таким образом.

6
задан ulmangt 2 April 2012 в 14:24
поделиться