Maison >développement back-end >C++ >Comment convertir des chaînes en doubles en C : un guide simple utilisant `std::istringstream` et `std::stod`
En C, la conversion d'une chaîne en double peut être réalisée à l'aide des fonctions std::istringstream et std::stod.
<code class="cpp">#include <sstream> double string_to_double(const std::string& s) { std::istringstream iss(s); double x; if (!(iss >> x)) { return 0; // Return 0 for non-numerical strings } return x; }</code>
Voici comment fonctionne cette fonction :
Notez que cette fonction ne peut pas distinguer complètement toutes les représentations de chaîne autorisées de zéro des chaînes non numériques. Par exemple, il considère toutes les chaînes suivantes comme nulles :
"0" "0." "0.0"
Voici quelques cas de test pour démontrer l'utilisation de la fonction string_to_double :
<code class="cpp">#include <cassert> int main() { assert(0.5 == string_to_double("0.5")); assert(0.5 == string_to_double("0.5 ")); assert(0.5 == string_to_double(" 0.5")); assert(0.5 == string_to_double("0.5a")); assert(0 == string_to_double("0")); assert(0 == string_to_double("0.")); assert(0 == string_to_double("0.0")); assert(0 == string_to_double("foobar")); return 0; }</code>
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!