Преобразование числа из научной записи в десятичную в JAVA

У меня проблема: число отображается в экспоненциальном представлении, если оно имеет 8 или более цифр до десятичной точки.
Есть ли простой способ преобразовать это число в десятичное с помощью библиотеки или чего-то еще?
Я начал создавать ручной метод для его разбора, но он кажется слишком сложным.

Любая помощь будет оценена.

input example: 1.0225556677556E7

Изменить: мне также нужно иметь возможность идентифицировать число в научной нотации.


person peggyLeggy    schedule 04.06.2015    source источник
comment
возможный дубликат форматировать двойное значение в экспоненциальном представлении   -  person JAL    schedule 04.06.2015
comment
@JAL: Это наоборот.   -  person T.J. Crowder    schedule 04.06.2015
comment
@ T.J.Crowder Да, но ответы там содержат соответствующие ссылки на документацию, которая поможет спрашивающему.   -  person JAL    schedule 04.06.2015
comment
@JAL не имеет значения - другой вопрос, другой ответ. SO заключается в том, чтобы не читать всю документацию.   -  person Software Engineer    schedule 04.06.2015


Ответы (1)


Вы можете использовать NumberFormat, чтобы легко достичь своей цели.

String scientificNotation = "1.0225556677556E7";
Double scientificDouble = Double.parseDouble(scientificNotation);
NumberFormat nf = new DecimalFormat("################################################.###########################################");
decimalString = nf.format(scientificDouble);

Чтобы ответить на другой вопрос о сопоставлении строк научной нотации, вы можете использовать регулярное выражение и String.matches(). Это не идеально, хотя вероятность получения ложных срабатываний должна быть очень низкой:

if(myString.matches("-?[\\d.]+(?:E-?\\d+)?")){
    //do work
}
person GregH    schedule 04.06.2015
comment
Спасибо @jeremy, это именно то, что я искал - person peggyLeggy; 04.06.2015
comment
@jeremy извините, недостаточно представителей, чтобы проголосовать за вас, но вы этого заслуживаете! Спасибо за оперативные ответы - person peggyLeggy; 04.06.2015
comment
@peggyLeggy рад помочь, добро пожаловать в переполнение стека :) - person GregH; 04.06.2015