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

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

Patricia Arquette
Patricia Arquetteasal
2024-10-26 21:27:02116semak imbas

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

Memformat Nombor dengan Koma dalam C

Pengenalan:

Dalam C , memformat nombor dengan koma ialah tugas biasa, terutamanya apabila memaparkan mata wang atau nilai berangka yang besar. Tutorial ini menunjukkan kaedah yang cekap untuk menambah koma pada integer dan dua kali ganda.

Kaedah:

Untuk memformat nombor dengan koma, kami akan menggunakan std::locale dan std::stringstream.

Langkah 1: Menggunakan std::locale

<code class="cpp">std::stringstream ss;
ss.imbue(std::locale(""));</code>

std:: locale membolehkan kami menetapkan locale untuk pemformatan rentetan. Menggunakan rentetan kosong ("") memastikan bahawa tempattempat ditetapkan kepada tetapan sistem lalai pengguna.

Langkah 2: Menggunakan std::stringstream

<code class="cpp">ss << std::fixed << value;

std::stringstream digunakan untuk membina rentetan yang diformatkan. Kami memasukkan nilai ke dalam strim menggunakan std::fixed untuk mengekalkan titik perpuluhan.

Memformat Integer:

Untuk integer, hanya panggil kaedah FormatWithCommas() seperti berikut:

<code class="cpp">std::string result1 = FormatWithCommas(7800);

Memformat Beregu:

Untuk beregu, gunakan kaedah yang sama tetapi dengan sedikit pengubahsuaian dalam penggunaan std::fixed:

<code class="cpp">ss << std::fixed << std::setprecision(2) << value;

std::setprecision() memastikan bahawa hanya dua digit perpuluhan dipaparkan.

Contoh Penggunaan:

<code class="cpp">#include <cmath>

std::string FormatWithCommas(double value)
{
    std::stringstream ss;
    ss.imbue(std::locale(""));
    ss << std::fixed << std::setprecision(2) << value;
    return ss.str();
}

int main()
{
    double pi = std::atan(1.0) * 4.0;
    std::string result = FormatWithCommas(pi);
    std::cout << result << "\n";
}</code>

Output:

3.14

Atas ialah kandungan terperinci Bagaimana untuk 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!

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