«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как точно преобразовать числа с плавающей запятой в строки с заданной десятичной точностью в C++?

Как точно преобразовать числа с плавающей запятой в строки с заданной десятичной точностью в C++?

Опубликовано 18 ноября 2024 г.
Просматривать:298

How Do You Precisely Convert Floats to Strings with Specified Decimal Precision in C  ?

Точное преобразование чисел с плавающей точкой в ​​строки с заданной десятичной точностью

В C преобразование числа с плавающей запятой в строку с определенной точностью и десятичные цифры требуют внимательного рассмотрения. В этом руководстве рассматриваются два распространенных решения: stringstream и функция to_chars из C 17.

Использование Stringstream

Stringstream — это универсальный инструмент для работы со строками в C . Чтобы преобразовать число с плавающей запятой в строку с заданной точностью, можно применить манипуляторы потока:

#include 
#include 

double pi = 3.14159265359;
std::stringstream stream;
stream 
  • std::fixed гарантирует, что число будет представлено в нотации с фиксированной запятой, с десятичной точкой и указанным количеством цифр.
  • std::setprecision(2) управляет количеством отображаемых десятичных знаков.

Использование функции to_chars (C 17 и выше)

Для для более технических целей, таких как запись данных в XML или JSON, функция to_chars, представленная в C 17, предлагает краткое решение:

#include 
#include 

double pi = 3.14159265359;
std::array buffer;
auto [ptr, ec] = std::to_chars(buffer.data(), buffer.data()   buffer.size(), pi,
                               std::chars_format::fixed, 2);
if (ec == std::errc{}) {
    std::string s(buffer.data(), ptr);
}
else {
    // Error handling
}
  • Функция std::to_chars принимает буфер (в форме std::array), число и спецификацию формата (в данном случае std::chars_format::fixed с двумя десятичными числами). мест).
  • Если преобразование прошло успешно, результирующая строка создается из буфера.

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

Заявление о выпуске Эта статья перепечатана по адресу: 1729721222. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3