SO WIRD'S GEMACHT: Konvertieren einer Zeichenfolge in eine Gleitkommazahl

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
11558 HOW TO: Convert a String to a Floating-Point Number

Zusammenfassung

In einer Anwendung, die mit Microsoft C oder C/C++ entwickelt wurde, ist die Funktion sscanf() eine gute Alternative zur Funktion atof(), wenn eine Zeichenfolge aus Ziffern in eine Gleitkommazahl umgewandelt werden soll. Wenn eine Zeichenfolge keine gültige Zahl darstellt, gibt atof() den Wert Null zurück; sscanf() hingegen gibt hilfreichere Fehlerinformationen zurück. Die Anwendung kann den Fehlerwert aus sscanf() mit der Funktion matherr() zum Durchführen der Fehlerbehandlung verwenden. Die Funktion atof() ruft matherr() nur dann auf, wenn tatsächlich eine mathematische Ausnahme auftritt.


Der nachfolgende Text stellt zwei empfohlene Verfahren zum Konvertieren einer Zeichenfolge in eine Gleitkommazahl vor.
  • Überprüfen Sie die umzuwandelnde Zeichenfolge, bevor Sie die Funktion atof() aufrufen. Stellen Sie sicher, dass die Zeichenfolge keine nichtnumerischen Zeichen enthält, und dass das Dezimaltrennzeichen sowie die Vorzeichen an der richtigen Stelle stehen.
  • Verwenden Sie die Funktion sscanf(). Diese Funktion ist langsamer als die Funktion atof(), sie stellt jedoch nützlichere Informationen zur Verfügung, wenn ein Fehler auftritt.


Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 11558 – Letzte Überarbeitung: 05.07.2005 – Revision: 1

Feedback