Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memformat Nombor dengan Koma dalam C Menggunakan std::locale?

Bagaimana untuk Memformat Nombor dengan Koma dalam C Menggunakan std::locale?

Barbara Streisand
Barbara Streisandasal
2024-10-27 00:19:31923semak imbas

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

Memformat Nombor dengan Koma dalam C

Dalam C , kelas std::locale menyediakan cara yang bergantung kepada setempat untuk memformat nombor dengan koma .

std::locale with std::stringstream

Untuk memformat nombor sebagai rentetan dengan koma, anda boleh menggunakan std::locale dengan std::stringstream seperti berikut:

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

Contoh Penggunaan:

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

Mengendalikan Beregu

Untuk memformatkan double sebagai rentetan dengan koma, anda boleh menggunakan pendekatan yang sama seperti di atas, tetapi kod itu perlu mengendalikan titik perpuluhan:

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

Penafian:

Perhatikan bahawa mudah alih penyelesaian di atas mungkin menjadi isu, kerana tempat yang digunakan apabila "" diluluskan mungkin berbeza-beza bergantung pada sistem.

Atas ialah kandungan terperinci Bagaimana untuk Memformat Nombor dengan Koma dalam C Menggunakan std::locale?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn