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!