Преобразование числа с плавающей точкой в строку в Java

Научитесь преобразовывать значение float в строку с помощью методов Float.toString() и String.valueOf() после форматирования его до n десятичных знаков. Рекомендуемый подход — использовать метод Float.toString().

1. Использование Float.toString()

Метод Float.toString() возвращает строковое представление значения float, переданного в качестве аргумента. Преобразование хорошо работает с положительными и отрицательными числами.

float PI = 3.1415927f;float negativePI = -3.1415927f;Assertions.assertEquals("3.1415927", Float.toString(PI));Assertions.assertEquals("-3.1415927", Float.toString(negativePI));

Обратите внимание, что:

  • если аргумент — NaN, результатом будет строка «NaN». Никаких исключений не возникает.
  • Если аргумент — бесконечность, результатом будет строка «Infinity».
 Assertions.assertEquals("NaN", Float.toString(0.0f / 0.0f));Assertions.assertEquals("Infinity", Float.toString(Float.POSITIVE_INFINITY));Assertions.assertEquals("-Infinity", Float.toString(Float.NEGATIVE_INFINITY));

2. Использование String.valueOf()

Метод String.valueOf() перегружен и работает со многими типами данных. Мы можем использовать его и с типом float. Он принимает значение float в качестве аргумента и возвращает эквивалентное строковое представление.

String.valueOf() внутренне вызывает метод Float.toString(), поэтому поведение метода аналогично предыдущему.

float PI = 3.1415927f;float negativePI = -3.1415927f;Assertions.assertEquals("3.1415927", String.valueOf(PI));Assertions.assertEquals("-3.1415927", String.valueOf(negativePI));

3. Форматировать число с плавающей точкой до N десятичных знаков

Нам нужно использовать метод NumberFormat.format(float) для форматирования значения с плавающей точкой в строку в предопределенном формате, например, для установки десятичных знаков в отформатированной строке.

Например, мы можем отформатировать число с плавающей точкой до двух десятичных знаков, как в данной программе.

NumberFormat formatter = new DecimalFormat("0.00");Assertions.assertEquals("3.14", formatter.format(PI));

В этой статье мы научились преобразовывать или форматировать тип float в String. Вам может быть интересно почитать о правильном способе сравнения двух чисел с плавающей точкой.

Исходный код на Github

Прокрутить вверх