Saltar al contenido

Dividir por cero: ¿Error de división infinita, NaN o cero?

Presta atención ya que en este enunciado encontrarás la solución que buscas.Este tutorial fue evaluado por nuestros expertos para garantizar la calidad y exactitud de nuestro post.

Solución:

Aparte del hecho de que 1 / 0 == inf es matemáticamente muy cuestionable, la sencilla razón por la que no funciona en la mayoría de los lenguajes de programación es que 1 / 0 realiza un División entera casi universalmente (existen excepciones).

El resultado es un número entero, y simplemente no hay forma de codificar “infinito” en un número entero. Existe para números de punto flotante, por lo que una división de punto flotante en realidad producirá un valor infinito en la mayoría de los idiomas.

lo mismo es true para NaN: mientras que el estándar de punto flotante IEEE define un patrón de bits que representa un valor de NaN, los números enteros no tienen ese valor; por lo tanto, dichos valores simplemente no se pueden representar como un número entero.

Mientras que el límite de 1 / n tenderá hacia el infinito a medida que n tiende a cero (desde la dirección positiva) la razón por la cual 1 / 0 <> Inf es que 1/0 es indefinido (¡por definición matemática!).

¿No es esa la respuesta matemáticamente más correcta?

No, porque en matemáticas, la división por cero simplemente no está definida y el infinito normalmente no es un valor (o no es un valor único).

La razón por la que no todos los lenguajes/bibliotecas devuelven NaN es que (a) la división por cero a menudo es el resultado de un error del programador, ya que no debería ocurrir en absoluto en algoritmos matemáticamente rigurosos, y (b) los procesadores pueden manejarlo yendo en un estado de excepción, por lo que la transformación a NaN requeriría manejar dichos estados, lo que significa que la división se vuelve aún más costosa de lo que ya es (en comparación con, por ejemplo, la suma).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *