In C kann die Konvertierung eines Strings in ein Double mit den Funktionen std::istringstream und std::stod erreicht werden.
#include
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;
}
So funktioniert diese Funktion:
Beachten Sie, dass diese Funktion nicht alle zulässigen Zeichenfolgendarstellungen von Null vollständig von nicht numerischen Zeichenfolgen unterscheiden kann. Beispielsweise werden alle folgenden Zeichenfolgen als Null betrachtet:
"0" "0." "0.0"
Hier sind einige Testfälle, um die Verwendung der string_to_double-Funktion zu demonstrieren:
#include
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;
}
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3