Maison > développement back-end > C++ > le corps du texte

Comment formater des nombres avec des virgules en C à l'aide de std :: locale et std :: stringstream ?

Patricia Arquette
Libérer: 2024-10-26 21:27:02
original
115 Les gens l'ont consulté

How to Format Numbers with Commas in C   Using std::locale and std::stringstream?

Formatage des nombres avec des virgules en C

Introduction :

En C, formatage des nombres avec les virgules sont une tâche courante, en particulier lors de l'affichage de devises ou de grandes valeurs numériques. Ce tutoriel montre une méthode efficace pour ajouter des virgules aux entiers et aux doubles.

Méthode :

Pour formater les nombres avec des virgules, nous utiliserons std::locale et std::stringstream.

Étape 1 : Utilisation de std::locale

<code class="cpp">std::stringstream ss;
ss.imbue(std::locale(""));</code>
Copier après la connexion

std:: locale nous permet de définir les paramètres régionaux pour le formatage des chaînes. L'utilisation de la chaîne vide ("") garantit que les paramètres régionaux sont définis sur les paramètres système par défaut de l'utilisateur.

Étape 2 : Utilisation de std::stringstream

<code class="cpp">ss << std::fixed << value;
Copier après la connexion

std::stringstream est utilisé pour construire la chaîne formatée. Nous insérons la valeur dans le flux en utilisant std::fixed pour conserver le point décimal.

Formatage des entiers :

Pour les entiers, appelez simplement la méthode FormatWithCommas() comme suit :

<code class="cpp">std::string result1 = FormatWithCommas(7800);
Copier après la connexion

Formatage des doubles :

Pour les doubles, utilisez la même méthode mais avec une légère modification dans l'utilisation de std::fixed:

<code class="cpp">ss << std::fixed << std::setprecision(2) << value;
Copier après la connexion

std::setprecision() garantit que seuls deux chiffres décimaux sont affichés.

Exemple d'utilisation :

<code class="cpp">#include <cmath>

std::string FormatWithCommas(double value)
{
    std::stringstream ss;
    ss.imbue(std::locale(""));
    ss << std::fixed << std::setprecision(2) << value;
    return ss.str();
}

int main()
{
    double pi = std::atan(1.0) * 4.0;
    std::string result = FormatWithCommas(pi);
    std::cout << result << "\n";
}</code>
Copier après la connexion

Sortie :

3.14
Copier après la connexion

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!

source:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!