Как сузить строковое представление float, если это возможно?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как сузить строковое представление float, если это возможно?

Сообщение Anonymous »

Я изучаю std::format, пытаясь создать короткое представление std::string переменной с плавающей запятой.
Моя проблема в том, что я могу' t установить ширину, так как я не знаю, сколько цифр до десятичной точки. Если я устанавливаю точность, он печатает нули, даже если это единственные конечные цифры.
Я думаю, этого можно каким-то образом добиться с помощью ширины/точности/заполнения и т. д., но я не вижу путь.
Предположим, я хочу, чтобы строка помещалась в указанный fit_to, если это только возможно; в противном случае строка должна содержать минимально возможные цифры, отдавая предпочтение «100» вместо «1e2», «1000» — «1e03» или «0,01» — «1e-2» и т. д.
Можно ли этого добиться с помощью std::format (или любого другого типа форматирования std) без ручного преобразования каждой цифры из числа с плавающей запятой?

Код: Выделить всё

#include 

std::string to_string_shortest(float v, [[maybe_unused]] std::size_t fit_to = 4) {
return std::format("{}", v);
}

int main()
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79312063/how-to-narrow-string-representation-of-float-when-possible[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»