if ($frac =~ /999.$/) { my ($zeroes, $digit) = $frac =~ /\.(.*)(.)$/; $digit = '0.' . '0' x (length($zeroes)-1) . sprintf("%02d", 10 - $digit); $frac += $digit; }