Cast von Integraler division zu double

Was wird hier ausgegeben? Also was ist der Inhalt der erg Variable?

int a = 5;
int b = 10;

double erg = a / b;

System.out.println(erg);

a) 0.5
b) 0.0
c) null
d) java.lang.ArithmeticException

Das Ergebnis b) 0.0 richtig.

Es wurde eine division von zwei int durchgeführt.
Es wurde in das Ergebnis erg nur der Ganzzahlige (integraler) Anteil also 0 zugewiesen.

Das war sicher nicht das erwartete Ergebnis, oder? Was kann man tun?

Z.b. einen cast vor der division von einem oder beiden Operatoren:

double richtig = a / (double) b;
System.out.println(richtig); // = 0.5

Was in diesem Zusammenhang oft vergessen wird, ist das testen des divisors (b) auf 0 bei ganzzahliger division.
Ist der 0, kommt es nämlich zu einer ArithmeticException.
Z.b.:

double ex = a / 0; // Exception in thread „main“ java.lang.ArithmeticException: / by zero