http://www.perlmonks.org?node_id=1001137


in reply to Best way to round a number.

use strict; use warnings; sub round5 { my $num = shift; return $num+2 - ($num+2) % 5; # <------ TIMTOWTDI ;-) } for (0..10) { printf "%3d -> %3d %3d -> %3d\n", $_, round5($_), -$_, round5(-$_); } __DATA__ 0 -> 0 0 -> 0 1 -> 0 -1 -> 0 2 -> 0 -2 -> 0 3 -> 5 -3 -> -5 4 -> 5 -4 -> -5 5 -> 5 -5 -> -5 6 -> 5 -6 -> -5 7 -> 5 -7 -> -5 8 -> 10 -8 -> -10 9 -> 10 -9 -> -10 10 -> 10 -10 -> -10