Thread use locale und printf() (16 answers)
Opened by GH@NDI at 2010-01-20 13:04

GH@NDI
 2010-01-20 13:04
#130876 #130876
User since
2003-09-21
16 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo alle zusammen,

ich würde gerne mit printf() Gleitkommazahlen nach deutschen Formatierungsregeln ausgeben. d.H. aus 1234.12 soll 1.234,12 werden. Eigentlich sollte das mit einer entsprechenden locale und printf ja gar kein Problem sein:

Code (perl): (dl )
1
2
use locale;
printf("%f\n", 1234.12);


Allerdings funktioniert das bei mir nicht, keine Ahnung warum. Laut perldoc:perllocale soll ein "use locale" entsprechend die locale Einstellungen des Systems übernehmen. Selbige sehen bei mir so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=


Sollte also eigentlich passen. Ein kleiner C-Testschnippsel machts übrigens auch richtig. Nur bei Perl bekomme ich immer nur die Formatierung nach der C-Locale.

Ideen?

Gruß,
Sven

View full thread use locale und printf()