Heim  >  Artikel  >  Backend-Entwicklung  >  Wie formatiere ich Zahlen mit Kommas in C mit std::locale?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 00:19:31993Durchsuche

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>

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>

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>

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!

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