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

bianca
 2010-01-20 13:17
#130877 #130877
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
Tausendertrennpunkte in Perl per printf?
Da hätte ich auch Interesse dran als großer Fan des Runden's :))
Ich baue die in meiner Rundungs-Routine so ein:
Code (perl): (dl )
1
2
s/(\d{3})(?=\d)(?!\d*\.)/$1,/g;
tr/.,/,./;


EDIT: Sorry, mal wieder die Hälfte vergessen.
Code (perl): (dl )
1
2
3
4
5
6
7
print "wird zu: " . mach_deutsch (123456789.01);
sub mach_deutsch {
local $_ = reverse sprintf "%.*f",2,shift;
s/(\d{3})(?=\d)(?!\d*\.)/$1,/g;
tr/.,/,./;
return scalar reverse $_;
}

Das hin und her sieht wild aus, weil ich es aus dem Gesamtzusammenhang rausgerissen hab. Kann man noch optimieren, wenn man nicht auch noch korrekt runden will.
Per printf wäre natürlich besser, wenn das ginge.
Last edited: 2010-01-20 13:38:14 +0100 (CET)
10 print "Hallo"
20 goto 10

View full thread use locale und printf()