[Perl] Re: [pcm] Division sobre cero (fwd)
Gunnar Wolf
gwolf@campus.iztacala.unam.mx
Mon, 23 Sep 2002 11:58:35 -0500 (CDT)
> No mientes. Efectivamente la divisi=F3n por cero en punto flotante en un
> procesador relativamente moderno (Pentium para aca) devuelve NaN como
> resultado y cualquier operaci=F3n posterior con un n=FAmero y NAN devuelv=
e NaN
> (donde NAN es diferente de infinito que tiene otra representaci=F3n).
=2E..Imagino, sin embargo, que este NAN es interceptado por el OS, quien es
el encargado de levantar la excepci=F3n.
> Supongo que la bronca ha de estar en parte en los enteros, pues no existe
> forma de representar inequivocamente NaN en un valor entero. La mayor=EDa=
de
> los procesadores o generan una interrupci=F3n o activan una bandera de es=
tado
> indicando que de ah=ED en adelante los resultados no tienen significado. =
No
> s=E9 si Perl trate diferente a los enteros de los n=FAmero de punto flota=
nte
> (FoxPro los trata igual).
Perl s=F3lamente trabaja con flotantes. Bueno, tambi=E9n trabaja con entero=
s,
pero no es el comportamiento default.
> Pero creo que con devolver NaN y compararlo con alg=FAn tipo de constante
> ser=EDa suficiente. Pero el tratamiento para enteros es latoso. La verdad=
yo
> prefiero evitar la eventualidad antes de intentar tratar con el error.
Claro, cuando es comportamiento err=F3neo. Sin embargo, cuando quieres -por
ejemplo- graficar 1/x desde -5 hasta 5 con valores cont=EDnuos (o tan
cont=EDnuos como tu CPU y el T=EDo Noc te lo permitan), el hacer 1/0 no es
comportamiento err=F3neo - simplemente es indefinido, y el punto no debe se=
r
graficado. Pero no es err=F3neo.
Saludos,
--=20
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF