Heim > Backend-Entwicklung > C++ > Hauptteil

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

Barbara Streisand
Freigeben: 2024-10-27 00:19:31
Original
992 Leute haben es durchsucht

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

Zahlen mit Kommas in C formatieren

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:

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

template<class T>
std::string FormatWithCommas(const T& value) {
  std::stringstream ss;
  ss.imbue(std::locale(""));  // Use the system's locale
  ss << std::fixed << value;
  return ss.str();
}</code>
Nach dem Login kopieren

Beispielverwendung:

<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>
Nach dem Login kopieren

Umgang mit Doubles

Um ein Double als zu formatieren Zeichenfolge mit Kommas können Sie den gleichen Ansatz wie oben verwenden, aber der Code muss den Dezimalpunkt verarbeiten:

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

Haftungsausschluss:

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

Das obige ist der detaillierte Inhalt vonWie formatiere ich Zahlen mit Kommas in C mit std::locale?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage