Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Rentetan dengan Selamat kepada Nombor Ketepatan Berganda dalam C?

Bagaimana untuk Menukar Rentetan dengan Selamat kepada Nombor Ketepatan Berganda dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 08:13:02794semak imbas

How to Safely Convert Strings to Double Precision Numbers in C  ?

Menukar Rentetan kepada Nombor Ketepatan Berganda dalam C

Apabila bekerja dengan rentetan dan data berangka dalam C , selalunya perlu menukar rentetan kepada nombor titik terapung berketepatan berganda. Artikel ini meneroka penyelesaian kepada masalah ini, dengan fokus pada pengendalian rentetan bukan berangka dengan anggun.

Fungsi

Untuk mencapai penukaran, kami mentakrifkan fungsi string_to_double yang mengambil rujukan rentetan sebagai input dan mengembalikan nilai berganda. Dalam fungsi ini:

  • Objek std::istringstream dimulakan dengan rentetan input.
  • Pembolehubah berganda x diisytiharkan untuk menerima hasilnya.
  • The istringstream >> operator digunakan untuk mengekstrak data daripada strim ke dalam pembolehubah x.
  • Jika pengekstrakan gagal disebabkan oleh aksara bukan berangka, fungsi mengembalikan 0.0.
  • Jika tidak, nilai berganda yang diekstrak dikembalikan .

Penggunaan dan Pengujian

Dalam kod contoh yang disediakan, string_to_double digunakan dengan pelbagai input rentetan untuk menunjukkan kefungsiannya:

  • Kes mudah mengembalikan nilai berganda yang dijangkakan.
  • Ruang putih mendahului atau mengekori dikendalikan dengan betul.
  • Aksara bukan digit selepas nombor diabaikan.
  • Penghadan fungsi ialah ketidakupayaannya untuk membezakan antara semua yang sah perwakilan rentetan sifar (cth., "0", "0.0", "0.0e0") dan rentetan bukan berangka.

Kesimpulan

Fungsi string_to_double menyediakan mudah dan cekap cara untuk menukar rentetan kepada nombor titik terapung ketepatan berganda dalam C . Pengendalian rentetan bukan berangka memastikan ia mengembalikan 0.0 dalam kes ini, mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan dengan Selamat kepada Nombor Ketepatan Berganda 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