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