Simple round function for Perl
Heres a usefull round function for Perl:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | sub round { my @number = split /\./, shift; my $precision = shift || 0; return $number[0] if ! $number[1]; my $decimal = $number[1]; if(length ($decimal+0) < ($precision+0)) { return $number[0].".".$number[1]; } my $rounder = substr $number[1], $precision, 1; if(($precision + 0) == 0) { if(($rounder + 0) >= 5) { return $number[0]+1; } return $number[0]; } my $base = $number[0].'.'.substr $number[1], 0, $precision + 0; if(($rounder + 0) >= 5) { my $rounded = '.'.('0' x ($precision - 1)).'1'; return $base + $rounded; } return $base; } |
Usage is simple:
round( $number, $precision );
No comments yet.