„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie formatiere ich Zahlen mit Kommas in C++ mit std::locale?

Wie formatiere ich Zahlen mit Kommas in C++ mit std::locale?

Veröffentlicht am 07.11.2024
Durchsuche:528

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

Formatieren von Zahlen mit Kommas in C

In C bietet die Klasse std::locale eine vom Gebietsschema abhängige Möglichkeit, Zahlen mit Kommas zu formatieren .

std::locale mit std::stringstream

Um eine Zahl als Zeichenfolge mit Kommas zu formatieren, können Sie std::locale mit std::stringstream verwenden wie folgt:

#include 
#include 

template
std::string FormatWithCommas(const T& value) {
  std::stringstream ss;
  ss.imbue(std::locale(""));  // Use the system's locale
  ss 

Beispielverwendung:

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"

Umgang mit Doubles

Um ein Double als String mit Kommas zu formatieren, können Sie den gleichen Ansatz wie oben verwenden, der Code wird dies jedoch tun müssen den Dezimalpunkt verarbeiten:

template
std::string FormatWithCommas(const T& value) {
  std::stringstream ss;
  ss.imbue(std::locale(""));
  ss 

Haftungsausschluss:

Beachten Sie, dass die Portabilität der oben genannten Lösungen ein Problem darstellen könnte, da das bei der Übergabe von „“ verwendete Gebietsschema je nach System variieren kann.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3