Java: преобразование двойного в строку - PullRequest
4 голосов
/ 05 октября 2009

У меня есть двойник, значение которого составляет 10 000 000,00 (десять миллионов). Мне пришлось преобразовать его в String. При использовании метода toString я получаю String «1.0E7», что является правильным в соответствии со спецификацией. К сожалению мне нужно String «10 000 000,00» (или эквивалент в зависимости от локали).

Как этого добиться?

Ответы [ 4 ]

12 голосов
/ 05 октября 2009
5 голосов
/ 05 октября 2009

В дополнение к средству форматирования вы можете рассмотреть возможность использования класса java.math.BigDecimal для точного представления чисел.

Расчеты, где требуется полная точность, например финансовые расчеты, лучше всего выполнять с BigDecimal. Математика с плавающей запятой лучше подходит для инженерных, графических и других математических вычислений, где некоторая точность может быть принесена в жертву скорости.

4 голосов
/ 05 октября 2009
  public static void main(String[] args) throws ParseException {
    double aDouble = 10000000.00;
    DecimalFormat nf = (DecimalFormat) NumberFormat.getInstance(Locale.US);
    String aString = Double.toString(aDouble);
    System.out.println(nf.parse(aString));
  }
2 голосов
/ 05 октября 2009

Загляните в "DecimalFormat". Это позволяет вам форматировать вывод практически так, как вы хотите!

...