Rumah > pembangunan bahagian belakang > C++ > Mengapakah `atof` Gagal Menukar `std::string` kepada `double` dalam Qt, dan Apakah Alternatifnya?

Mengapakah `atof` Gagal Menukar `std::string` kepada `double` dalam Qt, dan Apakah Alternatifnya?

Linda Hamilton
Lepaskan: 2024-12-03 19:02:10
asal
177 orang telah melayarinya

Why Does `atof` Fail to Convert `std::string` to `double` in Qt, and What Are the Alternatives?

std::string kepada Double Conversion Isu: Menggunakan atof dengan Qt Projects

Menukar std::string kepada double menggunakan atof fungsi boleh menjadi masalah dalam projek Qt. Mari kita periksa kod dan teroka pendekatan alternatif:

Kod yang disediakan:

std::string num = "0.6";
double temp = (double)atof(num.c_str());
Salin selepas log masuk

cuba menukar std::string kepada double. Walau bagaimanapun, ia mengembalikan sifar. Isu ini timbul kerana QString, yang biasa digunakan dalam Qt, diluluskan sebagai const char*.

Untuk menyelesaikannya, hantar QString secara eksplisit kepada menggandakan:

QString winOpacity("0.6");
double temp = winOpacity.toDouble();
Salin selepas log masuk

Sebagai alternatif, QByteArray::toDouble boleh digunakan untuk penukaran yang lebih pantas apabila bekerja dengan const char*.

Untuk projek bukan Qt, sintaks berikut adalah sah:

std::string num = "0.6";
double temp = ::atof(num.c_str());
Salin selepas log masuk

Walaupun aliran rentetan atau boost::lexical_cast juga boleh melakukan penukaran, mereka dikenakan penalti prestasi.

Atas ialah kandungan terperinci Mengapakah `atof` Gagal Menukar `std::string` kepada `double` dalam Qt, dan Apakah Alternatifnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan