преобразуйте очень маленький дважды в Строку

У меня есть очень небольшое число, и я хочу преобразовать его в Строку с полным числом, не сокращенным всегда. Я не знаю, насколько маленький это число может быть.

например, когда я работаю:

double d = 1E-10;
System.out.println(d);

это показывает 1.0E-10 вместо 0,000000001.

Я уже попробовал NumberFormat.getNumberInstance() но это форматирует к 0. и я не знаю что выражение использовать на a DecimalFormat работать с любым числом.

5
задан cd1 20 January 2010 в 18:16
поделиться

4 ответа

Предполагая, что вам нужно 500 нулей перед вашим номером, когда вы делаете:

double d = 1E-500;

, тогда вы можете использовать:

double d = 1E-10;
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(Integer.MAX_VALUE);
System.out.println(nf.format(d));
10
ответ дан 18 December 2019 в 14:46
поделиться

Вы можете установить максимальное и минимальное количество цифр в фракции informatterter с SetMinimumFractionDigits и SetMaximummactionDIGITS . Это должно решить проблему.

3
ответ дан 18 December 2019 в 14:46
поделиться

Вы можете сделать это с BigDecimals в Java 5, используя:

System.out.println(new java.math.BigDecimal(Double.toString(1E-10)).stripTrailingZeros().toPlainString());

Обратите внимание, что если у вас есть двойное значение в качестве строки в первую очередь, вам было бы лучше использовать:

System.out.println(new java.math.BigDecimal("1E-10").toPlainString());

... Как объясняется в бигнечных javadocs.

2
ответ дан 18 December 2019 в 14:46
поделиться

Посмотрите на: http://java.sun.com/docs/books/tutorial/i18n/format/decimalformat.html#numberpattern

Я думаю, что формат «0. ####» может работать.

-2
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: