Here's another way to approach it:
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
In reply to Re: Rounding of a number...
by legato
in thread Rounding of a number...
by mkenney
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |