sub trunc {
my ($float, $precision) = @_[0..1];
my @comp = split /\./, $float;
chop $comp[1] while length($comp[1]) > $precision; #trim
$comp[1].='0' for (length($comp[1])..$precision-1); #pad
return "$comp[0].$comp[1]";
}
printf ("%5.2f", trunc($yearlyamount/52,2));
This will, of course, fail utterly if you pass in anything less than pristine values. I leave data validation and error handling as an exercise to whatever masochist chooses this route. Of course, you could also implement it in this insane manner:
$weekly = int(($yearlyamount/52)*100);
$weekly = s,\d{2}$,\.$&,;
printf ("%5.2f", $weekly);
As a last resort, you could always:
$weekly = sprintf("%.3", $yearlyamount/52);
chop($weekly);
printf "%5.2", $weekly;
Anima Legato .oO all things connect through the motion of the mind
|