n.d. parker: Nach Addition wird die letzte 0 ignoriert

Beitrag lesen

Moin,

Problem 1: Man muss die gebrochenen Zahlen (also 1,2 u.a.) mit einem Punkt eingeben, ansonsten werden sie ignoriert. Da habe ich mittlerweile herausbekommen, dass es am amerikanischen Ursprung Perls liegt. In Amerika nutzen die eben Punkte statt Kommata. Nuetzt mir aber wenig, da ich auf dem Zahlenblock nur ein Komma, keinen Punkt habe. Kann man das Problem irgendwie umgehen?

my $zahl='1,2';
$zahl =~ y/,/./; # ersetze , durch .

Problem 2: Wenn die Zahlen addiert wurden, also z.B. 1,20 + 4, dann gibt das Script 4,2 aus. Da das jedoch Waehrungen sind, sollte da 4,20(DM) stehen. 4,2 ist doch etwas ungewohnt. Wie kriege ich da ne 0 hinter?

my $x = '1,20';
my $y = '4';
$x =~ y/,/./;
$y =~ y/,/./;
($sum = sprintf '%.2f' => $x+$y) =~ y/./,/;
print $sum;

sprintf stammt aus der C-Welt, die Perldoku schweigt sich ueber den Formatstring (hier '%.2f') etwas aus, fuer naeheres Interesse muesstest du mal eine C-Doku konsultieren.

Die Ausgabe erfolgt in meinem Beispiel wieder mit ','.

Viele Gruesse,

n.d.p.