¿Qué es inf y nan?


Solo una pregunta sobre la que estoy un poco confundido

Así que estaba jugando con float('inf') y me preguntaba para qué se usa.

También me di cuenta de que si agrego -inf + inf consigo nan es lo mismo que Cero o no.

Estoy confundido acerca de cuáles son los usos de estos dos valores.

También cuando lo hago nan - inf No consigo -inf Consigo nan Estoy seguro de que todo es bastante simple, pero me tropecé con ellos y no sabía lo que hacían.

Author: Inter, 2013-07-13

4 answers

inf es infinito-un valor que es mayor que cualquier otro valor. -inf es por lo tanto más pequeño que cualquier otro valor.

nan significa No Un Número, y esto no es igual a 0.

Aunque se puede decir que el infinito positivo y negativo es simétrico alrededor de 0, lo mismo se puede decir para cualquier valor n, lo que significa que el resultado de agregar los dos rinde nan. Esta idea se discute en este math.se pregunta .

Porque nan no es (literalmente) un número, no se puede hacer aritmética con él, por lo que el resultado de la segunda operación tampoco es un número (nan)

 38
Author: Volatility,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-13 12:19:15

Inf es infinito, es un número "más grande que todos los otros números". Intenta restarle todo lo que quieras, no se hará más pequeño. Todos los números son < Inf. -Inf es similar, pero más pequeño que todo.

NaN significa no-un-número. Si intentas hacer un cálculo que simplemente no tiene sentido, obtienes NaN. Inf - Inf es uno de esos cálculos. Por lo general, NaN se usa solo para significar que faltan algunos datos.

 3
Author: U2EF1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-13 09:05:07

nan significa "no es un número", un valor flotante que se obtiene si se realiza un cálculo cuyo resultado no se puede expresar como un número. Cualquier cálculo que realice con NaN también resultará en NaN.

inf significa infinito.

Por ejemplo:

>>> 2*float("inf")
inf
>>> -2*float("inf")
-inf
>>> float("inf")-float("inf")
nan
 2
Author: Tim Pietzcker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-13 09:03:05

Usted dice:

Cuando hago nan - inf i dont get -inf i get nan

Esto se debe a que cualquier operación que contenga NaN como un operando devolvería NaN.

Una comparación con NaN devolvería un resultado desordenado.

>>> float('Inf') == float('Inf')
True
>>> float('NaN') == float('NaN')
False
 2
Author: devnull,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-13 09:16:47