Maison  >  Article  >  développement back-end  >  Comment formater des nombres avec des virgules en C à l'aide de std :: locale et std :: stringstream ?

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

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 21:27:02116parcourir

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>

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;

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);

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;

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>

Sortie :

3.14

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:
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