Java (новичок), преобразующий научную нотацию в десятичную
если
double d = 1.999e-4
Я хочу, чтобы мой результат был 0,0001999.
Как я могу это сделать?
Ответ 1
NumberFormat formatter = new DecimalFormat("###.#####");
String f = formatter.format(d);
Вы можете изучить подкласс класса NumberFormat, чтобы узнать подробности.
Ответ 2
Вы можете сделать это следующим образом:
double d = 1.999e-4;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(7);
System.out.println(nf.format(d));
Ознакомьтесь с документацией методов NumberFormat для форматирования double, как вам удобно.
DecimalFormat является частным случаем NumberFormat как состояния его конструктора, я не думаю, что вам нужна его функциональность для вашего дела. Проверьте их документацию, если вы запутались. Для удобства используйте метод factory getInstance() of NumberFormat.
Ответ 3
Я предполагаю, что в классе BigDecimal существует метод toPlainString().
например если BigDecimal равен 1.23e-8, тогда метод возвращает 0.0000000124.
BigDecimal d = new BigDecimal("1.23E-8");
System.out.println(d.toPlainString());
Выше кода печатается 0.0000000123, тогда вы можете обрабатывать строку согласно вашему требованию.
Ответ 4
Если все, что вы хотите, должно печатать таким образом.
System.out.printf("%1$.10f", d);
вы можете изменить 10f, 10 = количество десятичных знаков, которое вы хотите.