Гибкий формат чисел в Java - PullRequest
2 голосов
/ 09 октября 2011


У меня есть вопрос, как написать код, который будет преобразовывать двойные числа в строку, используя разные форматы десятичных чисел на основе критериев.
Например,
1), если число целых цифр 2) если число целых цифр> = N: использовать формат научного числа 0. ### E0 Я только выдвигаю идею сподсчет целых чисел вручную (делением на 10). Затем используйте if / else.

Есть ли другой способ сделать это?

Ответы [ 2 ]

1 голос
/ 09 октября 2011

Хотя в DecimalFormat JavDoc есть раздел «Научная запись», это не соответствует вашим требованиям. Возможно, вы можете избежать «инженерной нотации», описанной в JavaDoc?

Если нет, то самый простой способ - использовать два разных формата, например:

private DecimalFormat df1 = new DecimalFormat("#.###");
private DecimalFormat df2 = new DecimalFormat("0.###E0");

public String formatDouble(double d) {
    if( Math.abs(d) < 1000 )
        return df1.format(d);
    else
        return df2.format(d);
}
1 голос
/ 09 октября 2011

Вы можете использовать класс NumberFormat. Конечно, вы должны использовать условие для учета ваших двух случаев.

...