Wie Beate schon angemerkt hat, paßt
$zahl = int($zahl + 0.5) - 0.5;
wohl nicht ganz ...
besser (aber noch immer nicht ideal) ist
$zahl = int($zahl + 0.5);
das ist dann kaufmännisches Runden
Als Wort zum Sonntag noch ein Zitat aus "man perlfunc":
<quote>
int EXPR
int
Returns the integer portion of EXPR. If EXPR is omitted, uses $_. You should not use this function for rounding: one because it truncates towards 0, and two because machine representations of floating point numbers can sometimes produce counterintuitive results. For example, int(-6.725/0.025) produces -268 rather than the correct -269; that's because it's really more like -268.99999999999994315658 instead. Usually, the sprintf(), printf(), or the POSIX::floor and POSIX::ceil functions will serve you better than will int().
</quote>
Prägnanter kann man es nicht ausdrücken ;-)
mit herzlichem RTFM
K@rl