Lo que decide Nan y el infinito en las operaciones de división java

Vinod Kunnakkattil:

Salida del código de abajo me confunde. ¿Por qué NaNa veces y otras veces Infinity?

public static void main (String[] args) {

    double a = 0.0;
    double b = 1.0;
    int c = 0; 
    System.out.println(a/0.0);
    System.out.println(a/0);
    System.out.println(b/0.0);
    System.out.println(b/0);
    System.out.println(c/0.0);
    System.out.println(c/0);
}

Salidas es:

NaN
NaN
Infinity
Infinity
NaN
Exception in thread "main" java.lang.ArithmeticException: / by zero

¿Cuál es el factor decisivo aquí?

Yahya:

Esto es debido a la Norma IEEE para aritmética de punto flotante (IEEE 754) , que es una norma técnica para el cálculo de coma flotante establecida en 1985 por el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE).


El propósito:

El estándar de punto flotante IEEE, .. especifica que cada operación aritmética de punto flotante, incluyendo la división por cero, tiene un resultado bien definido . Los soportes estándar firmados cero, así como el infinito y NaN (no un número). Hay dos ceros: 0 (cero positivo) y -0 (negativos cero), y esto elimina cualquier ambigüedad cuando se divide .


La regla:

En IEEE 754 aritmética, a ÷ +0es infinito positivo cuando aes positivo , infinito negativo cuando aes negativo , y NaN cuandoa = ±0.


Fuente

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=179699&siteId=1
Recomendado
Clasificación