my @si = qw"T G M k * m u n p"; $si[4] = ''; sub normalize { my $a = shift; my ($number, $exponent) = $a =~ /(.*)e?(.*)/; while ($number >= 1000) { $number /= 1000; $exponent += 3; } while ($number and ($number < 1)) { $number *= 1000; $exponent -= 3; } return ($a,'') unless $exponent; while (1) { return ($number, @si[4 - $exponent/3]) unless ($exponent % 3); $number *= 10; $exponent -= 1; } }
my $a = 1e-7; my ($number, $exponent) = normalize($a); print " $a = $number $exponent\n"; $a = 1e7; ($number, $exponent) = normalize($a); print " $a = $number $exponent\n"; $a = 10000; ($number, $exponent) = normalize($a); print " $a = $number $exponent\n"; $a = 0; ($number, $exponent) = normalize($a); print " $a = $number $exponent\n"; $a = 1000; ($number, $exponent) = normalize($a); print " $a = $number $exponent\n"; - Flávio Soibelmann Glock -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]