Maison > développement back-end > C++ > Pourquoi `atof` ne parvient-il pas à convertir `std::string` en `double` dans Qt, et quelles sont les alternatives ?

Pourquoi `atof` ne parvient-il pas à convertir `std::string` en `double` dans Qt, et quelles sont les alternatives ?

Linda Hamilton
Libérer: 2024-12-03 19:02:10
original
151 Les gens l'ont consulté

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

std::string en double problème de conversion : utilisation d'atof avec des projets Qt

Conversion d'un std::string en double à l'aide de atof la fonction peut être problématique dans les projets Qt. Examinons le code et explorons des approches alternatives :

Le code fourni :

std::string num = "0.6";
double temp = (double)atof(num.c_str());
Copier après la connexion

tente de convertir un std::string en double. Cependant, il renvoie zéro. Ce problème survient car les QStrings, couramment utilisées dans Qt, sont transmises en tant que const char*.

Pour résoudre ce problème, convertissez explicitement la QString en double :

QString winOpacity("0.6");
double temp = winOpacity.toDouble();
Copier après la connexion

Alternativement, QByteArray::toDouble peut être utilisé pour des conversions plus rapides lorsque vous travaillez avec const char*.

Pour les projets non-Qt, la syntaxe suivante est valid :

std::string num = "0.6";
double temp = ::atof(num.c_str());
Copier après la connexion

Bien que stringstream ou boost::lexical_cast puissent également effectuer la conversion, ils encourent une pénalité de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal