Stefan Muenz: Perl: Zahlen runden auf x dez. Stellen

Beitrag lesen

Hallo Slobodan,

-Versuch 1:
$gerundet = sprintf ("%0.2f",$wert);
Wenn das Ding "einfach" auf die Seite geschrieben wird klappt es.
Wenn ich das ganze in:
print " blablabla $gerundet\n";
reinsetze wird z.B das 6.55 als 6.00 dargestellt.
-Versuch 2:
$gerundet = int(($wert+.005)*100)/100
$gerundet in HTML reingesetzt liefert das gleiche.

Eine dritte Moeglichkeit stellen Regular Expressions dar. Da Perl jede Variable so behandelt, wie man es geade will, kann man auch Suche-Ersetze-Funktionen fuer Zeichenketten auf Zahlen loslassen. Aber: das folgende Beispiel packe ich auch nicht ganz. Ich bekomme immer entweder eine oder drei Nachkommastellen heraus, nie zwei (ich vermute aber eher mal, dass es an meinen Faehigkeiten liegt, RegExps perfekt einzusetzen). Hier das Prinzip:

print "Content-type: text/html\n\n";
   print "<html><head></head><body>\n";

$test = 3 / 7;
   $test =~ s/.(\d{2})*/.\1/g;
   print "$test";

print "</body></html>\n";

Kannst dich ja mal selbst versuchen in dem Suche-Ersetze-Muster <g>

viele Gruesse
  Stefan Muenz