Форматирование Java Floats - PullRequest
       36

Форматирование Java Floats

0 голосов
/ 11 июня 2018

Простой вопрос, но я не могу найти простое решение.

Есть ex 2.52549856E8 число с плавающей запятой.

Я хочу просто сделать это 25.2549856E8, вот и все, все остальное может остаться.

Я искал решение, и все, что я нашел, было с кучей строковых примеров.

Я получаю чистое число с плавающей точкой.Должен ли я сначала преобразовать его в строку?Есть ли более простой способ сделать это?

1 Ответ

0 голосов
/ 11 июня 2018

Если вы хотите просто переместить точку на одну цифру вправо, вы можете использовать следующий фрагмент, который использует String#substring(), чтобы разрезать String на нужные части и затем объединить их снова:

String number = String.valueOf(2.52549856E8f);
int index = number.indexOf('.');
String formatted = 
    number.substring(0, index) + 
    number.substring(index + 1, index + 2) + 
    '.' + 
    number.substring(index + 2);
  1. number.substring(0, index) вырезает первую цифру
  2. number.substring(index + 1, index + 2) вырезает вторую цифру
  3. '.' вставляет новую точку
  4. number.substring(index + 2)добавляет остаток от числа

То же самое можно сделать с регулярным выражением:

String number = String.valueOf(2.52549856E8f);
String formatted = number.replaceAll("^(\\d)\\.(\\d)(\\d+E\\d+)$", "$1$2.$3");
...