Forum: Compiler & IDEs Trennzeichen bei *printf und float/double ändern


von Markus (Gast)


Lesenswert?

Hallo,
gibt es eine möglichkeit das Trennzeichen zwischen der Vor- und der 
Nachkommastelle eines flaot bzw. double Typen bei einer *printf ausgabe 
zu ändern?

MFG

Markus

von Karl H. (kbuchegg)


Lesenswert?

Markus wrote:
> Hallo,
> gibt es eine möglichkeit das Trennzeichen zwischen der Vor- und der
> Nachkommastelle eines flaot bzw. double Typen bei einer *printf ausgabe
> zu ändern?

Nein.
Das wirst du wohl oder übel händisch machen müssen.

Die Ausgabe mittels sprintf in einen String-Buffer schreiben lassen, 
mittels strchr() den '.' suchen und falls einer vorhanden ist, durch 
einen ',' ersetzen.

von Markus (Gast)


Lesenswert?

Danke, das hab ich befürchtet. Das mit dem strchr wollt ich vermeiden, 
aber wenn es nur so geht.

MFG

Markus

von yalu (Gast)


Lesenswert?

Stichwort "Locale": Mit
1
  setlocale(LC_NUMERIC, "");

werden, sofern von der Plattform unterstützt, gebietsspezifische
Einstellungen (LC_NUMERIC- oder LANG-Variable bei Unix & Co,
"Ländereinstellungen" bei Windows) für numerische Ein-/Ausgaben
übernommen, so dass printf FP-Zahlen in Deutschland mit einem Komma und
in den USA mit einem Punkt als Dezimaltrennzeichen ausgibt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

yalu wrote:
> sofern von der Plattform unterstützt, ...

Genau das dürfte halt die hier entscheidende Frage sein.  Falls es
sich bei der Plattform um avr-libc handelt: die unterstützt es nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.