sub remove_sign_on_zero { my $num_str = shift; if ($num_str =~ /^-([0\.]+)$/) { return " $1"; } else { return $num_str; } } my $num = remove_sign_on_zero( sprintf('%7.5f', $example) );