use warnings; use strict; my $number = shift; my $error = $number+1; my $denom = 1; while ($error) { my $num = int($number * $denom + .5); if (abs($num/$denom - $number) < $error) { $error = abs($num/$denom - $number); print "$num/$denom\t\terr=$error\n"; } exit if ++$denom > 999; }