Java: преобразование научных обозначений в обычные - PullRequest
15 голосов
/ 30 марта 2010

Как мне преобразовать научную нотацию в обычную инт Например: 1.23E2 Я хотел бы преобразовать его в 123

Спасибо.

Ответы [ 5 ]

32 голосов
/ 30 марта 2010

Если у вас есть значение в виде строки, вы можете использовать

int val = new BigDecimal(stringValue).intValue();
2 голосов
/ 30 марта 2010

Проверить DecimalFormat.parse () .

Пример кода:

DecimalFormat df = new DecimalFormat();
Number num = df.parse("1.23E2", new ParsePosition(0));
int ans = num.intValue();
System.out.println(ans); // This prints 123
2 голосов
/ 30 марта 2010

Я предполагаю, что у вас есть строка.

Посмотрите на класс DecimalFormat . Большинство людей используют его для форматирования чисел в виде строк, но на самом деле у него есть метод синтаксического анализа, чтобы обойти его! Вы инициализируете его своим шаблоном (см. Учебник), а затем вызываете parse () для входной строки.

2 голосов
/ 30 марта 2010

Вы можете просто привести его к int как:

double d = 1.23E2; // or float d = 1.23E2f;
int i = (int)d; // i is now 123
0 голосов
/ 20 декабря 2013

Вы также можете использовать что-то вроде этого.

(int) Double.parseDouble("1.23E2")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...