"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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++ ?

Publié le 2024-11-18
Parcourir:264

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 float en chaîne avec une précision spécifiée, des manipulateurs de flux peuvent être appliqués :

#include 
#include 

double pi = 3.14159265359;
std::stringstream stream;
stream 
  • std::fixed garantit que le nombre est représenté en notation à virgule fixe, avec un point décimal et un nombre spécifié 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 fins plus techniques, telles que l'écriture de données au format XML ou JSON, la fonction to_chars introduite dans C 17 offre une solution concise :

#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
}
  • La fonction std::to_chars 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 places).
  • Si la conversion réussit, la chaîne résultante est construite à partir du tampon.

En employant ces techniques, vous pouvez convertir flotte vers les 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 conformément à vos besoins.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729721222. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3