In die Anweisung : long d = (long) (a + f / c + b); hat die Division normalerweise die Priorität . Also f==1234,15 wird durch c==0 dividiered und kriegen wir mormalerweise eine Exception (ArithmeticException). Warum ist das nicht der Fall? public static void main(String[] args) { int a = 0; int b = a + 46; byte c = (byte) (a * b); double f = 1234.15; long d = (long) (a + f / c + b); System.out.println(d); }