PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : perl sprintf



elrond
17-11-2003, 14:43
ich stell mich gerade evtl. etwas blöd an...

ich versuche eine zahl "12554445.55" so darzustellen "12.554.445,55" wie unsere Buchhaltung das eben braucht....

es sollte irgendwie mit sprintf funktionieren, aber ich schaff's nicht. Ihr habt das sicher schon öfter genacht.....

elrond
18-11-2003, 08:38
ich habe rausgefunden, daß sprintf das nicht leisten kann. Ich bin auf eine funktion gestossen, die das kann:


print form_betrag(1255481.44)."\n";

sub form_betrag {
local $_ = shift;
$_ =~ s/\s//g;
$_ =~ s/\./\,/;
1 while s/^([-+]?\d+)(\d{3})/$1.$2/;
if( $_!~ /\,/ ) { $_.=",00";}
return $_;
}