2009-07-30 8 views
9

Ich bin gespannt:Was ist c printf% f Standardpräzision?

Wenn Sie eine printf("%f", number); tun, was ist die Genauigkeit der Aussage? I.e. Wie viele Dezimalstellen werden angezeigt? Ist dieser Compiler abhängig?

+1

Dies ist tatsächlich durch den C-Standard definiert. Ich habe ein Tag hinzugefügt. –

Antwort

18

Der ANSI-C-Standard in Abschnitt 7.19.6.1, sagt dies über die f Formatbezeichner:

Wenn die Genauigkeit fehlt, 6 Ziffern angegeben

5

Die Standardgenauigkeit für %f ist 6-stellig (siehe ISO C99-Spezifikation, 7.19.6.1/7).

5

Das Buch, C: A Reference Manual besagt, dass, wenn keine Genauigkeit angegeben wird, die Standardpräzision 6 (d. H. 6 Nachkommastellen) ist.

Ein Nachteil ist, wenn die Zahl inf ist (das heißt 1,0/0,0) oder NaN dann spezifiziert C99, dass die Ausgabe inf werden soll, -INF, Unendlichkeit, -Infinity oder nan etc ....