Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
10 Июл 2023
1 мин
509

Форматирование чисел с плавающей точкой в Java без лишних десятичных нулей

Часто во время работы с числами с плавающей точкой в Java возникает ситуация, когда необходимо преобразовать число в строку, но при этом избавиться от

Часто во время работы с числами с плавающей точкой в Java возникает ситуация, когда необходимо преобразовать число в строку, но при этом избавиться от лишних нулей после запятой. В простейшем случае это может выглядеть так:

double number = 232.0000;
String formattedNumber = String.format("%f", number);

В результате переменная formattedNumber содержит строку «232.000000», хотя ожидалось увидеть «232». Дополнительные нули после запятой могут быть не только лишними, но и вводить в заблуждение.

Решение

Один из способов решить эту проблему — использовать класс DecimalFormat. Этот класс предназначен для форматирования чисел и предоставляет большую гибкость в настройке формата.

import java.text.DecimalFormat;

double number = 232.0000;
DecimalFormat df = new DecimalFormat("0.#");
String formattedNumber = df.format(number);

В этом примере formattedNumber будет содержать строку «232», как и ожидалось. Формат «0.#» означает, что перед десятичной точкой должна быть хотя бы одна цифра, а после точки может быть любое количество цифр, но лишние нули будут отброшены.

Этот подход подойдет и для чисел с несколькими десятичными знаками:

double number = 1.23450000;
String formattedNumber = df.format(number);

В результате formattedNumber будет содержать строку «1.2345».

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

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий