Maison >développement back-end >C++ >Comment formater de grands nombres avec des virgules en C pour une meilleure lisibilité ?

Comment formater de grands nombres avec des virgules en C pour une meilleure lisibilité ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 20:11:02492parcourir

How can I format large numbers with commas in C   for better readability?

Formatage des nombres par virgules en C

De nombreux scénarios nécessitent la présentation des nombres avec des virgules pour faciliter la lisibilité. En C , cela peut être fait efficacement en utilisant les approches suivantes :

Utilisation de std::locale et std::stringstream

Cette méthode implique d'utiliser la bibliothèque std::locale pour spécifier comment le le formatage doit être appliqué. Voici une implémentation basée sur un modèle :

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

template<class T>
std::string FormatWithCommas(T value)
{
    std::stringstream ss;
    ss.imbue(std::locale(""));
    ss << std::fixed << value;
    return ss.str();
}</code>

En définissant explicitement les paramètres régionaux sur "" (chaîne vide), les paramètres régionaux par défaut sont utilisés, qui correspondent généralement aux paramètres régionaux du système de l'utilisateur.

Formatage des doubles

Pour gérer également les doubles, une légère modification est requise :

<code class="cpp">template<class T>
std::string FormatWithCommas(T value)
{
    std::stringstream ss;
    ss.imbue(std::locale(""));
    ss << std::fixed << std::setprecision(2) << value;
    return ss.str();
}</code>

La méthode std::setprecision est ajoutée pour contrôler le nombre de décimales affichées.

Exemple d'utilisation

Pour illustrer l'utilisation de la fonction FormatWithCommas :

<code class="cpp">std::string result1 = FormatWithCommas(7800);
std::string result2 = FormatWithCommas(5100100);
std::string result3 = FormatWithCommas(201234567890);

// result1 = "7,800"
// result2 = "5,100,100"
// result3 = "201,234,567,890"</code>

Remarque sur la portabilité

Il est important de noter que cette approche peut rencontrer des problèmes de portabilité selon les paramètres régionaux. . Par conséquent, il est conseillé d'examiner attentivement les paramètres régionaux utilisés ou d'utiliser un mécanisme de spécification de paramètres régionaux personnalisé si nécessaire.

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