printf()?
-
Hi Leute!
Ich hab heute folgenden Ausdruck ausprobiert: printf("%7.3lf" "%8.3lf", x, y);
Dieser Ausdruck mach nun folgendes: Er schneidet quasi Nachkommastellen ab. Aber wie kommt man da drauf welche Zahlen man vorne hinsetzen muss, damit man z.B. nur eine, zwei, drei ... Nachkommastellen sieht?
Ich hab dazu irgendwie nix gefunden.
-
printf("7**.3lf" "%8.3**lf", x, y); sagt, wieviele Nachkommastellen ausgegeben werden sollen.
-
Und was macht dann die 7 bzw. die 8?
-
Die Anzahl der Zahlen vor dem Komma.
-
Schau dir am besten mal die Seite hier an, da wird alles ganz ausführlich erklärt:
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
-
feigling schrieb:
Die Anzahl der Zahlen vor dem Komma.
Nein!
Die Länge des Feldes für diese Ausgabe (der . wird mitgezählt)printf("%5.3lf" "%8.3lf", x, y);
ist Ok für x bis 10 und y bis 1000.
Printf versucht immer die Feldlänge auf Kosten der Nachkommastellen einzuhalten.
-
Ich habe nicht verstanden, was du meinst, aber man kann die Vorkommastellenvorgabe auch weglassen, außerdem ist %lf hier nicht C89-Standard:
printf("%.3f%.3f", x, y);
-
Warum teilst du den String eigentlich auf? Ist doch das schöne an an dem String, dass man in einen String seinen Text plus Variablen reinschreiben kann, so wie es nachher dastehen soll.
-
DirkB schrieb:
Nein!
Die Länge des Feldes für diese Ausgabe (der . wird mitgezählt)Ah ok, ich arbeite doch zu selten mit float/double und war der Meinung, dass es die Stellen vor dem Kommata sind. Gut zu wissen.
-
Wutz schrieb:
außerdem ist %lf hier nicht C89-Standard:
Und afaik auch sonst keiner.