Совокупное выражение выражения формы E1 op= E2 эквивалентно E1 = (T) ((E1) op (E2)), где T - тип E1, за исключением того, что E1 оценивается только один раз.
Обратите внимание, что существует листинг, связанный с назначением соединения. Однако при простом добавлении нет отливки, следовательно, ошибка.
Если включить литье, ошибка будет предотвращена:
float a = 0;
a = (float) (a + Math.PI); // works
Это распространенное заблуждение, что x += y идентично x = x + y.