„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > So konvertieren Sie Strings in Doubles in C++: Eine einfache Anleitung mit „std::istringstream“ und „std::stod“.

So konvertieren Sie Strings in Doubles in C++: Eine einfache Anleitung mit „std::istringstream“ und „std::stod“.

Veröffentlicht am 16.11.2024
Durchsuche:918

How to Convert Strings to Doubles in C  : A Simple Guide Using `std::istringstream` and `std::stod`

Konvertieren von Strings in Doubles in C

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:

  1. Erstellen Sie ein std::istringstream-Objekt iss aus der Eingabezeichenfolge s.
  2. Verwenden Sie den Operator >>, um a zu extrahieren doppelter Wert von iss.
  3. Wenn die Extraktion erfolgreich ist, geben Sie den doppelten Wert zurück.
  4. Wenn die Extraktion schlägt fehl (z. B. die Zeichenfolge ist nicht numerisch), gibt 0 zurück.

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;
}
Neuestes Tutorial Mehr>

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