Pregunta

En específico:

Im haciendo algunas operaciones matemáticas, y la aplicación se bloquea constantemente debido a un doble que se utiliza ampliamente sucede para obtener el valor: -1 # IND000000000000 cuando se sqrt'ed "algunos" números .... ¿Que es esto? ¿Indefinido? ¿Infinito? Demasiado grande para caber? No es una raíz cuadrada perfecta? ¿Hay alguna forma de resolver esto? ¡Gracias por adelantado! EDIT: ¿Cómo puedo comprobar si un matrimonio tiene este valor? Probé: si (. X == 0 x-1 # IND000000000000) y otras variaciones, pero no funcionó. ¿Es posible comprobar si una variable tiene este valor?

¿Fue útil?

Solución

En realidad, el -1.#IND000000000000 cadena no es un valor, devuelto por una función, pero es una de las representaciones comunes de un QNaN, Quiet Not-a-Number, el valor especial IEEE-754 que representa el número no válido, que no cause la excepción (también hay SNaN, Signalling NaN, lo que causaría la excepción de coma flotante, si está activado). La causa común de esto está llamando a una función con el argumento de que de dominio.

Otros consejos

NaNs (como el "indeterminada" que tiene y "infinito") puede ser detectada por el control de x == x (que es falso por Nan y válido para cualquier número finito).

El valor #IND000000000000 representa un valor numérico válido. Esto es a menudo llamado (No-A-Number silencioso) QNAN valor, ya que representa un tipo indeterminado, pero no causa cálculos falle.

Es probable que, los números esquivos cuya raíz cuadrada usted está tratando de determinar son negativa números, por lo que no se define ese valor. Ver Wikipedia para más información.

La solución se requerirá en primer lugar a determinar donde se produce el problema. Eso significa que sea necesario dar un paso a través de ti mismo con un depurador y ver los valores de las variables, o publicar su código para que podamos hacer lo mismo.

Si el argumento es negativo, se produce un error de dominio, estableciendo la variable global errno con el valor EDOM.

Sin utilizar un tipo complejo, sqrt de cualquier valor por debajo de 0 está destinado a provocar una excepción.

Es un NaN (no un número). Significa que has llamado sqrt con un argumento negativo.

Saludos y HTH.,

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top