Title: RE: [Perl-unix-users] conversion between exponential and corresponding integer value

depending on the format of the exponential value, it may be as simple as:

print int(10e5);
print int(-10e5);

This doesn't appear to work, though, if formatted as 10e-5, so you'd need to create a sub something like:

sub exp2int
{
        $_ = shift;
        my ($num,$exp) = split(/e/,$_);

        if ($exp > 0)
        {
                $num *= 10;
                for (my $i = 1; $i < $exp; $i++)
                {
                        $num *= 10;
                }
        }
        elsif ($exp < 0)
        {
                $num *= -10;
                for (my $i = -1; $i > $exp; $i--)
                {
                        $num *= 10;
                }
        }

        return($num);
}

#here's the inverse

sub int2exp
{
        my $num = shift;
        my $count;

        while(($num < -10) || ($num > 10))
        {
                $num = $num / 10;
                $count++;
        }

        $new = "${num}e${count}";
        return($new);
}

# end

Of course, there may be a really simple answer to this puzzle.

HTH,
Pete


> -----Original Message-----
> From: Mehta, Perdeep [mailto:[EMAIL PROTECTED]]
> Sent: Friday, February 27, 2004 12:36 PM
> To: [EMAIL PROTECTED]
> Subject: [Perl-unix-users] conversion between exponential and
> corresponding integer value
>
>
> Dear Perl Gurus,
>
> I need help to convert an exponential value such as 10e-5 to
> its integer value and vice versa in a perl script.
>
> Thanks in advance for any help.
> perdeep
>
> Perdeep K. Mehta
> Hartwell Center for Bioinformatics & Biotechnology
> St. Jude Children's Research Hospital
> Memphis, TN 38105-2794
> Tel: 901-495 3774
> http://www.hartwellcenter.org
>
>
>
> _______________________________________________
> Perl-Unix-Users mailing list
> [EMAIL PROTECTED]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>

_______________________________________________
Perl-Unix-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to