Ответ 1
NumberFormat formatter = new DecimalFormat("###.#####");
String f = formatter.format(d);
Вы можете изучить подкласс класса NumberFormat
, чтобы узнать подробности.
если
double d = 1.999e-4
Я хочу, чтобы мой результат был 0,0001999.
Как я могу это сделать?
NumberFormat formatter = new DecimalFormat("###.#####");
String f = formatter.format(d);
Вы можете изучить подкласс класса NumberFormat
, чтобы узнать подробности.
Вы можете сделать это следующим образом:
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
.
Я предполагаю, что в классе BigDecimal существует метод toPlainString()
.
например если BigDecimal равен 1.23e-8, тогда метод возвращает 0.0000000124.
BigDecimal d = new BigDecimal("1.23E-8");
System.out.println(d.toPlainString());
Выше кода печатается 0.0000000123, тогда вы можете обрабатывать строку согласно вашему требованию.
Если все, что вы хотите, должно печатать таким образом.
System.out.printf("%1$.10f", d);
вы можете изменить 10f, 10 = количество десятичных знаков, которое вы хотите.
Посмотрите
java.text.DecimalFormat
и
java.text.DecimalFormatSymbols