Thread format_money() (16 answers)
Opened by kristian at 2011-08-23 20:48

kristian
 2011-08-23 20:48
#151762 #151762
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
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)

View full thread format_money()