Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Anda Menukarkan Terapung dengan Tepat kepada Rentetan dengan Ketepatan Perpuluhan Ditentukan dalam C?

Bagaimanakah Anda Menukarkan Terapung dengan Tepat kepada Rentetan dengan Ketepatan Perpuluhan Ditentukan dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 06:20:30353semak imbas

How Do You Precisely Convert Floats to Strings with Specified Decimal Precision in C  ?

Penukaran Tepat Terapung kepada Rentetan dengan Ketepatan Perpuluhan Ditentukan

Dalam C , menukar nombor titik terapung kepada rentetan dengan ketepatan tertentu dan digit perpuluhan memerlukan pertimbangan yang teliti. Panduan ini meneroka dua penyelesaian biasa: stringstream dan fungsi to_chars daripada C 17.

Menggunakan Stringstream

Stringstream ialah alat serba boleh untuk memanipulasi rentetan dalam C . Untuk menukar apungan kepada rentetan dengan ketepatan yang ditentukan, manipulator aliran boleh digunakan:

<code class="cpp">#include <iomanip>
#include <sstream>

double pi = 3.14159265359;
std::stringstream stream;
stream << std::fixed << std::setprecision(2) << pi;
std::string s = stream.str();
  • std::fixed memastikan nombor diwakili dalam tatatanda titik tetap, dengan titik perpuluhan dan ditentukan bilangan digit.
  • std::setprecision(2) mengawal bilangan tempat perpuluhan untuk dipaparkan.

Menggunakan Fungsi to_chars (C 17 dan ke atas)

Untuk tujuan yang lebih teknikal, seperti menulis data ke XML atau JSON, fungsi to_chars yang diperkenalkan dalam C 17 menawarkan penyelesaian ringkas:

<code class="cpp">#include <array>
#include <charconv>

double pi = 3.14159265359;
std::array<char, 128> buffer;
auto [ptr, ec] = std::to_chars(buffer.data(), buffer.data() + buffer.size(), pi,
                               std::chars_format::fixed, 2);
if (ec == std::errc{}) {
    std::string s(buffer.data(), ptr);
}
else {
    // Error handling
}</code>
  • The std::to_chars fungsi mengambil penimbal (dalam bentuk std::array), nombor dan spesifikasi format (dalam kes ini, std::chars_format::dibetulkan dengan 2 tempat perpuluhan).
  • Jika penukaran berjaya, rentetan yang terhasil dibina daripada penimbal.

Dengan menggunakan teknik ini, anda boleh menukar apungan kepada rentetan dalam C dengan kawalan tepat ke atas bilangan digit perpuluhan, memastikan data anda diwakili dengan tepat dan dalam mengikut keperluan anda.

Atas ialah kandungan terperinci Bagaimanakah Anda Menukarkan Terapung dengan Tepat kepada Rentetan dengan Ketepatan Perpuluhan Ditentukan dalam C?. 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