Maison > développement back-end > C++ > Comment convertir avec précision des flottants en chaînes avec une précision décimale spécifiée en C ?

Comment convertir avec précision des flottants en chaînes avec une précision décimale spécifiée en C ?

Linda Hamilton
Libérer: 2024-10-24 06:20:30
original
460 Les gens l'ont consulté

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

Conversion précise de flottants en chaînes avec une précision décimale spécifiée

En C, convertir un nombre à virgule flottante en chaîne avec une précision spécifique et les chiffres décimaux nécessitent un examen attentif. Ce guide explore deux solutions courantes : stringstream et la fonction to_chars de C 17.

Utilisation de Stringstream

Stringstream est un outil polyvalent pour manipuler des chaînes en C . Pour convertir un flottant en chaîne avec une précision spécifiée, des manipulateurs de flux peuvent être appliqués :

<code class="cpp">#include <iomanip>
#include <sstream>

double pi = 3.14159265359;
std::stringstream stream;
stream << std::fixed << std::setprecision(2) << pi;
std::string s = stream.str();
Copier après la connexion
  • std::fixed garantit que le nombre est représenté en notation à virgule fixe, avec un point décimal et spécifié nombre de chiffres.
  • std::setprecision(2) contrôle le nombre de décimales à afficher.

Utilisation de la fonction to_chars (C 17 et supérieur)

Pour des objectifs plus techniques, comme l'écriture de données au format XML ou JSON, la fonction to_chars introduite dans C 17 propose une solution concise :

<code class="cpp">#include <array>
#include <charconv>

double pi = 3.14159265359;
std::array<char, 128> 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
}</code>
Copier après la connexion
  • Le std::to_chars La fonction prend un tampon (sous forme std::array), un nombre et une spécification de format (dans ce cas, std::chars_format::fixed avec 2 décimales).
  • Si la conversion réussit, la chaîne résultante est construite à partir du tampon.

En employant ces techniques, vous pouvez convertir des flottants en chaînes en C avec un contrôle précis sur le nombre de chiffres décimaux, garantissant que vos données sont représentées avec précision et en conformément à vos exigences.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal