Thread format_money()
(16 answers)
Opened by kristian at 2011-08-23 20:48
Hallo,
ich bin sicher, dass wir hier oder früher mal eine Funktion ausgetüftelt und optimiert haben, die Zahlen formatiert. Es ging dabei hauptsächlich um Geld. Aus 10000.99 soll 10.000,99 werden. Hat das noch eine(r) griffbereit oder im Kopf, wenn nein poste ich meine Versuche das zu erinnern und wir erbasteln es neu. TIA & Gruß Kristian EDIT: Ich kann mich ja auch gleich blamieren, ev. hilft es beim erinnern: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 sub format_money { my $self = shift; my $string = shift; my ($euro,$cent); if($string =~m/\./){ ($euro,$cent) = split(/\./,$string); }else{ ($euro,$cent) = ($string,0); } my $money = $self->format_num($euro) . ',' . sprintf("%.2d", $cent); return $money; } sub format_num { my $self = shift; my $num = shift; return $num if(length($num) < 4); my $reverse = reverse($num); $reverse =~ s/(\d{3})/$1./g; $num = reverse($reverse); $num =~ s/^\.//; return $num; } Last edited: 2011-08-23 20:52:24 +0200 (CEST) |