use POSIX qw( ceil floor ); my $rounded = ($num >= 0 ? ceil($num*2)/2 : floor($num*2)/2 );