my $frac = shift; if ($frac =~ /\..{5,}000.$/) { $frac =~ s/.$//; } elsif ($frac =~ /(\..{5,}999)(.)$/) { $frac = $frac + ( (10-$2) . "E-" . length($1)); } print "rounded to $frac";