2016-07-04 16 views
0
double doubleResult = 1d/0d; 
    System.out.println(doubleResult); 

    int intResult = 1/0; 
    System.out.println(intResult); 

Die Ausgabe lautet:Null Division java integer vs Doppel

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

Warum Unendlichkeit hat Doppel-Null-Division zurück und int Ausnahme Null Division wirft?

+0

Siehe auch [diese Frage] (http://stackoverflow.com/questions/2381544/why-doesnt-java-throw-an-exception-when-division-by-0-0). –

Antwort

1

Dies ist hauptsächlich aufgrund der Tatsache, dass der double Typ (der in Java ist eine IEEE754 64-Bit-Typ mit doppelter Genauigkeit) hat eine Darstellung für Unendlichkeit, während ein int Typ nicht.

Beachten Sie, dass double doubleResult = 1/0; würde noch verursachen eine Ausnahme ausgelöst werden: der Typ der Variablen, auf die das Ergebnis zugewiesen ist, ist nicht relevant.