Bienvenido a los foros de Perl en Español, fetiche.
No te olvides de mostrar tu código para que veamos dónde pueden estar los errores.
En cuanto a lo que propones, depende un poco del tamaño de la parte entera. Por ejemplo, si es pequeña, como en el ejemplo, no tienes que hacer nada...
Using perl Syntax Highlighting
my $numero_cientifico = '1.0030506e+002';
print "$numero_cientifico"; # 1.0030506e+002
print 0
+$numero_cientifico; # 100.30506Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
pero si el exponente se hace más grande (entre 14 y 16), entonces siempre sale en notación científica.
Puedes usar la función sprintf() para formatear los números, sobre todo si sabes cómo son esos exponentes.
Using perl Syntax Highlighting
my $numero_cientifico = '1.0030506e+015';
printf "%.25g\n", $numero_cientifico; # 1003050600000000Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Otra opción es interpretar el propio número, para extraer el exponente y así calcular el valor en printf.
O usar el módulo bigint:
- Código: Seleccionar todo
explorer@portatil:~/Documents/Desarrollo> perl -Mbignum -le 'print 1.0030506e+002'
100.30506
explorer@portatil:~/Documents/Desarrollo> perl -Mbignum -le 'print 123456789e+45'
123456789000000000000000000000000000000000000000000000
Todo esto en cuanto a notación... pero teniendo en cuenta el segundo punto de tu cuestión, no necesitas nada más que usar la función int().
- Código: Seleccionar todo
explorer@portatil:~/Documents/Desarrollo> perl -le 'print int(1.0030506e+002)'
100