He compilado un código que erróneamente intenta agregar un número y Double.NaN. Me pregunto si está lanzando una excepción que no sea atrapada. ¿Alguien sabe cómo se maneja esa situación?
Gracias.En Java, ¿qué ocurre si utiliza Double.NaN en una operación?
6
A
Respuesta
6
Agregar un número a NaN da NaN. No se espera que cause una excepción. Entiendo que esto cumple con IEEE 754.
0
public static void main(String args[])
{
Double d = Double.NaN + 1.0;
System.out.println(d);
}
imprime Double.Nan. ¿Alguien puede explicar la implementación de la fuente?
public static final double POSITIVE_INFINITY = 1.0/0.0;
public static final double NEGATIVE_INFINITY = -1.0/0.0;
public static final double NaN = 0.0d/0.0;
1
Para responder a la pregunta de Steve B:
POSITIVE_INFINITY es el mayor número algo positivo que puede almacenar si tiene espacio de almacenamiento ilimitado. Sin este lujo, tenemos que usar una construcción como 1.0/0.0 que hace un buen trabajo. Igual va para NEGATIVE_INFINITY pero luego el número negativo más grande.
NaN normalmente se define como 0.0/0.0 porque no existe un número como 0/0, por lo que califica perfectamente para un NaN.
Cuestiones relacionadas
- 1. ¿Qué ocurre si falta php.ini?
- 2. ¿Qué ocurre si redefinimos una función en línea?
- 3. ¿Qué ocurre si compila un archivo java vacío?
- 4. ¿Por qué pasa Assert.AreEqual (1.0, double.NaN, 1.0)?
- 5. double.NaN Igualdad en MS Test
- 6. ¿Qué ocurre en Excel?
- 7. ¿Qué ocurre exactamente cuando asigna una referencia a un elemento en Array en Java?
- 8. ¿Cuándo ocurre ERROR en Java?
- 9. operación BitMask en Java
- 10. En Java, ¿cómo configuro un tipo de devolución si ocurre una excepción?
- 11. Parse String to Double.NaN
- 12. ¿Qué ocurre después de escribir en una variable volátil?
- 13. ¿Cuándo utiliza varargs en Java?
- 14. Igualdad con Double.NaN
- 15. ¿Qué registrar cuando ocurre una excepción?
- 16. ¿Qué ocurre si una aplicación llama a más de 10 URL asincrónicas en Google App Engine?
- 17. ¿Qué ocurre si call_user_func se supone que devuelve false?
- 18. ¿Por qué ocurre una recursión aquí?
- 19. Configuración de Sinatra en Nginx: ¿qué ocurre?
- 20. ¿Por qué ocurre este AttributeError en python?
- 21. ¿Qué sucede en la arquitectura x86 cuando ocurre una interrupción?
- 22. NaN magia constante en Java
- 23. ¿Para qué se utiliza la reentrada de bloqueo en java?
- 24. Java - Accediendo al Método Estático Dormir - ¿Qué ocurre?
- 25. No se utiliza una instrucción if en Java
- 26. Por qué el intercambio no utiliza la operación Xor en C++
- 27. ¿Para qué se utiliza "java web start"?
- 28. INotifyPropertyChanged: ¿qué ocurre detrás de la escena?
- 29. ¿Por qué double.NaN no es igual a sí mismo?
- 30. ¿Qué ocurre con PERDIDO objetos String
Por definición, 0/0 = NaN. Ver http://en.wikipedia.org/wiki/NaN. –
Eh, no vi que la respuesta de Gamecat se estuviera refiriendo a esta. –