2013-11-12 4 views
0

Я использую DecimalFormat для того, чтобы преобразовать двойной в строку, как это:Decimal Преобразование формата выпуск

DecimalFormat df = new DecimalFormat("###.###"); 

df.format(km); 

Проблема, хотя переменная км имеет значение 9.655195710258606E-5, результат df.format метод возвращает 0 как string.But я ожидаю что-то вроде 9.655 вместо 0.

Любая помощь & предложения будут оценены

Благодарим Вас за беспокойство

ответ

3

Он работает как положено. Строка «9.655» была бы неправильной. Значение на самом деле равно 0,00009655, и если вы округлите его до 3 знаков после запятой, вы получите «0».

Чтобы увидеть еще несколько цифр, вы можете использовать больше десятичных знаков в формате #.###### или закрепить научную нотацию в формате #.###E0.

+0

Что мне делать, чтобы не получить «0»? Должен ли я изменить шаблон «###. ###» в конструкторе, чтобы не получить «0»? – user2982112

0

В конце этих чисел E (x) представляет экспоненту. E-5, означает, что показатель составляет -5, что означает фактическое число 9,655 * (1/(10^5)).

Смежные вопросы