2008-09-16 12 views

Antwort

8

% [width]. [Präzision]

Breite sollte den Dezimalpunkt enthalten.

% 8.2 bedeutet 8 Zeichen breit; 5 Ziffern vor dem Punkt und 2 danach. Ein Zeichen ist für den Punkt reserviert.

5 + 1 + 2 = 8

7

Was Sie wollen, ist ein Modifikator:

sprintf(S, "%.10f", val); 

Mann sprintf wird noch viele weitere Details zu den Formatbezeich haben.

+0

Nur eine Anmerkung: Wenn er ein Doppel verwendet, wäre die Verwendung von "lf" korrekter? –

+0

Nein,% f ist korrekt für double. – ChrisN

+0

Schwimmer tragen nur etwa 6 Stellen der Genauigkeit. Verwenden Sie% lf für ein Double. – EvilTeach

1

Vorsicht, die Ausgabe von sprintf variiert je nach C-Gebietsschema. Dies kann oder kann nicht sein, was Sie wollen. Siehe LC_NUMERIC in den locale docs/man-Seiten.

1

%f ist für Float-Werte.

Verwenden Sie stattdessen %lf. Es ist für Doppelgänger gedacht (die früher lange Schwimmer genannt wurden).

doppelt x = 3,14159265;
printf ("15.10lf \ n", x);