¿Es posible verificar si un número es NaN
o no?ver número NaN
Respuesta
Sí, por el hecho de que un NaN
no es igual a ningún otro número, incluido él mismo.
Eso tiene sentido cuando piensas en lo que significa NaN
, el hecho de que hayas creado un valor que no está realmente en tu poder para representar con valores de coma flotante "normales".
Por lo tanto, si crea dos números donde no sabe cuáles son, difícilmente puede considerarlos iguales. Ellos pueden ser, pero, dada la posibilidad de que algo grande números que puede ser (de hecho infinita), las posibilidades de que dos son el mismo número son sumamente pequeñas :-)
Usted puede buscar una función (macro en realidad) como isnan
(en math.h
para C y cmath
para C++) o simplemente utilizar la propiedad de que un valor NaN
no es igual a sí mismo con algo como:
if (myFloat != myFloat) { ... }
Si, por alguna extraña razón, su aplicación C no tiene isnan
(debería, ya que el estándar lo exige), puede codificar el suyo, por lo que mething como:
int isnan_float (float f) { return (f != f); }
Y envuelva 'myFloat! = myFloat' en algún tipo de función' isnan' con un comentario, no sea que los futuros lectores que no lo conocen estén muy confundidos. – GManNickG
está buscando null, pero eso solo es útil para los indicadores. un número no puede ser nulo por sí mismo, tiene un valor conocido que usted ingresó allí o datos aleatorios de lo que haya antes en la memoria.
Bajo Linux/gcc, hay isnan (doble), conforme a BSD4.3.
C99 proporciona fpclassify (x) y isnan (x).
(Pero C++ estándares/compiladores no necesariamente incluyen la funcionalidad de C99.)
Tiene que haber alguna manera con std :: numeric_limit <> ... Comprobando ...
Doh. Debería haber sabido ... Esta pregunta ha sido contestada antes ... Checking if a double (or float) is NaN in C++ Using NaN in C++? http://bytes.com/topic/c/answers/588254-how-check-double-inf-nan
- 1. Comprobando si un número complejo tiene NaN
- 2. ¿NaN es igual a NaN?
- 3. ¿Cómo declaro NaN (no un número) en Ruby?
- 4. ¿NaN negativo no es un NaN?
- 5. posición CALayer contiene NaN: [nan -0,5]
- 6. ¿Por qué el número ([]) === 0 y el número ({}) === NaN en Javascript?
- 7. Cómo resolver CALayerInvalidGeometry ', razón:' La posición de CALayer contiene NaN: [nan nan]?
- 8. Determine si NSNumber es NaN
- 9. En Java, ¿qué significa NaN?
- 10. NaN magia constante en Java
- 11. python nan and inf values
- 12. CALayerInvalidGeometry ', razón:' CALayer bounds contiene NaN: [0 0; nan nan] crash in view
- 13. Usando NaN en C++?
- 14. Reventado silencioso NaN
- 15. enviando NaN en json
- 16. Canvas.GetTop() devolviendo NaN
- 17. Numpy integer nan
- 18. Formateando un flotador nan en python
- 19. ¿Puede alguien explicarme NaN en Ruby?
- 20. Prueba de NaN en VBA/VB6
- 21. JavaScript: ¿qué es NaN, Object o primitive?
- 22. Cómo rastrear un NaN en C++
- 23. Enmascare un EditText con número de teléfono Formatee NaN como en PhoneNumberUtils
- 24. Detener el depurador cuando se produce un número de punto flotante NaN
- 25. Comprobación de nan en Cython
- 26. ExtJS 3.3 Format.Util.Ext.util.Format.dateRenderer volver NaN
- 27. Date.parse() da como resultado NaN
- 28. fundición NAN flotadores a int
- 29. fila retirar con valor nan
- 30. Confusión sobre NaN en Java
NIL (NULL en C-ESE) es un valor especial * * puntero. No existe tal cosa como NULL para los números. ¿Estás pensando en NaNs de coma flotante? – zwol
Quise decir NaN, mi mal, se corrigió la Q. – MBZ
Duplicado: http://stackoverflow.com/questions/570669/checking-if-a-double-or-float-is-nan-in-c – GManNickG