Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh memformat nombor dengan koma dalam C menggunakan std::locale dan std::stringstream?
Formatkan Nombor dengan Koma dalam C : Penyelesaian Komprehensif
Dalam C , memformat nombor dengan koma ialah tugas biasa yang meningkatkan kebolehbacaan dan kejelasan nilai angka. Artikel ini membentangkan kaedah yang mantap untuk mencapainya menggunakan gabungan std::locale dan std::stringstream.
Penyelesaian
Inti penyelesaian kami terletak pada memanfaatkan std::locale untuk mewujudkan konteks pemformatan setempat dan std::stringstream untuk menangkap hasil yang diformatkan. Kaedah templat FormatWithCommas, yang mengambil jenis angka generik T, mengikut langkah berikut:
Berikut ialah kod lengkap untuk kaedah FormatWithCommas :
<code class="cpp">template<class T> std::string FormatWithCommas(T value) { std::stringstream ss; ss.imbue(std::locale("")); ss << std::fixed << value; return ss.str(); }
Contoh Penggunaan
Menggunakan kaedah kami adalah mudah. Contohnya:
<code class="cpp">std::string result1 = FormatWithCommas(7800); std::string result2 = FormatWithCommas(5100100); std::string result3 = FormatWithCommas(201234567890); // Outputs: // result1 = "7,800" // result2 = "5,100,100" // result3 = "201,234,567,890"
Mengendalikan Beregu
Kaedah yang disediakan boleh diubah suai dengan mudah untuk mengendalikan beregu juga. Hanya gantikan T dengan dua kali ganda dalam pengisytiharan templat:
template<>
std::string FormatWithCommas(double value)
{
std::stringstream ss;
ss.imbue(std::locale(""));
ss << std::fixed << value;
return ss.str();
}Pertimbangan Mudah Alih
Perlu diperhatikan bahawa penggunaan "" untuk menentukan tempat mungkin tidak sepenuhnya mudah alih merentasi sistem yang berbeza. Untuk memastikan tingkah laku yang konsisten, pertimbangkan untuk menyatakan secara eksplisit tempat yang dikehendaki.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memformat nombor dengan koma dalam C menggunakan std::locale dan std::stringstream?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!