sprintf beachtet Locale - Settings nicht

21/01/2011 - 09:48 von Der Jens | Report spam
~ $ locale -a
C
de_DE
de_DE@euro
de_DE.iso88591
de_DE.iso885915@euro
deutsch
en_US
en_US.iso88591
en_US.utf8
german
POSIX


~ $ perl -MPOSIX -e 'setlocale(LC_NUMERIC, "de_DE"); print
sprintf("%.2f", 24.45), "" ';

24.45

Ich erwarte aber 24,45 (Komma statt Punkt) im Ergebnis (Perl 5.12.2)


Auf eine Maschine unter perl 5.8 klappt es hingegen.
Was làuft hier falsch?


Gruß

Jens
 

Lesen sie die antworten

#1 Der Jens
21/01/2011 - 10:01 | Warnen spam
Am 21.01.2011 09:48, schrieb Der Jens:

~ $ perl -MPOSIX -e 'setlocale(LC_NUMERIC, "de_DE"); print
sprintf("%.2f", 24.45), "" ';

24.45



perl -MPOSIX -e 'setlocale(LC_ALL, "de_DE"); printf("%.2f",24.45);

Tut es übrigens korrekt: 24,45

Ähnliche fragen