Textrepräsentation von Fließkommazahlen
-
Hallo,
welche Standards gibt es zur Textdarstellung von Zahlen (insb. Fließkommazahlen)? Ich meine sowas wie die groß/kleinschreibung von NaN, +Inf, 231e-4 etc.
-
Da noch niemand anderes eine positive Antwort gegeben hat, nehme ich mal an, dass das was ich von Anfang an vermutet habe richtig ist: Nein, es gibt keinen anerkannten Standard. Natürlich gibt es für bestimmte Programmiersprachen Vorgaben (sofern diese standardisiert sind), aber wie du sicherlich weißt (sonst hättest du wahrscheinlich nicht gefragt) sind die Details bei verschiedenen Sprachen oftmals unterschiedlich. Immerhin sind sich die Macher der Programmiersprachenstandards dieser Problematik wohl auch bewusst und zumindest das Einlesen ist meistens Recht flexibel und auch bei der Ausgabe kann man oftmals umschalten, wie die Ausgabe genau aussehen soll. Daher reicht es in der Regel, wenn man bloß halbwegs so schreibt wie alle anderen. Es ist also egal, ob das 'e' klein oder groß ist, solange man 'e' schreibt und nicht "*10^" oder andere unübliche Notationen.
P.S.: Vorsicht übrigens: C++ scheint einen Fehler im Standard zu haben, der keine Variante von inf oder nan beim Benutzen von istream::operator>>(double&) zulässt, da im Standard bloß die Zeichen '0'-'9', 'a'-'f' und 'x' für Zahlen zugelassen werden. Falls man in C++ inf oder nan lesen will, muss man dies daher händisch oder mittels der C-Bibliothek (strtod & Co, aber nicht atof!) parsen .
edit: '+' und '-' und Großbuchstaben sind natürlich auch erlaubt :p
-
Das liegt vielleicht daran, dass C++ gar nicht garantiert, dass die Fließkommadarstellung überhaupt so etwas wie inf und nan unterstützen muss.
Kann mich da aber auch irren.
-
Richtig, das garantiert der C++-Standard nicht. Der C-Standard aber auch nicht. Da haben sie jedoch trotzdem an diese Möglichkeit gedacht, als sie die Funktion der Zahlenparsefunktionen formuliert haben. (Wobei sie das genaue Format auch nicht festgelegt haben)