Ich möchte verstehen, wenn Format-Spezifizierer %g
für Doppel startet Werte im exponentiellen Format zu drucken.Von, wenn Formatbezeichner '% g' für Doppel beginnt im Exponentialformat zu drucken
myTest.c
#include <stdio.h>
int main() {
double val = 384615.38462;
double val2 = 9999999;
printf ("val = %g\n",val);
printf ("val2 = %g\n",val2);
return 0;
}
Zusammengestellt mit gcc:
gcc version 4.5.2 (GCC)
Target: i386-pc-solaris2.11
Ausgang:
val = 384615
val2 = 1e+07
Frage: Warum val
als ganze Zahl gedruckt und warum val2
umgewandelt wurde exponentielles Format, auch wenn ich nicht verwendet habe %lf
in printf
.
Gibt es einen Bereich ab, wenn Druckwerte im Exponentialformat gestartet werden? Wenn ja, können wir auf irgendeine Weise erraten, was der Wertebereich sein könnte?
Vielen Dank im Voraus.
[Nicht ein Betrüger, aber beantwortet die Frage.] (Http://Stackoverflow.com/a/35476709/694733) – user694733