Formater les nombres avec des virgules en C : une solution complète
En C, le formatage des nombres avec des virgules est une tâche courante qui améliore la lisibilité et clarté des valeurs numériques. Cet article présente une méthode robuste pour y parvenir en utilisant la combinaison de std::locale et std::stringstream.
La solution
Le cœur de notre solution réside dans en tirant parti de std::locale pour établir un contexte de formatage localisé et de std::stringstream pour capturer le résultat formaté. La méthode de modèle FormatWithCommas, qui prend un type numérique générique T, suit ces étapes :
Voici le code complet de la méthode FormatWithCommas :
<code class="cpp">template<class T> std::string FormatWithCommas(T value) { std::stringstream ss; ss.imbue(std::locale("")); ss << std::fixed << value; return ss.str(); }
Exemple d'utilisation
L'utilisation de notre méthode est simple. Par exemple :
<code class="cpp">std::string result1 = FormatWithCommas(7800); std::string result2 = FormatWithCommas(5100100); std::string result3 = FormatWithCommas(201234567890); // Outputs: // result1 = "7,800" // result2 = "5,100,100" // result3 = "201,234,567,890"
Gestion des doubles
La méthode fournie peut être facilement modifiée pour gérer également les doubles. Remplacez simplement T par double dans la déclaration du modèle :
template<>
std::string FormatWithCommas(double value)
{
std::stringstream ss;
ss.imbue(std::locale(""));
ss << std::fixed << value;
return ss.str();
}Considérations sur la portabilité
Il convient de noter que l'utilisation de "" pour spécifier les paramètres régionaux peut ne pas être entièrement portable sur différents systèmes. Pour garantir un comportement cohérent, envisagez de spécifier explicitement les paramètres régionaux souhaités.
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!