Это оператор присваивания . Это один из составных операторов присваивания.
Так что, если у нас есть
a /= b
тогда это точно так же, как поведение выражения
a = a / b
за исключением того, что выражение a
вычисляется только один раз и что оно ведет себя как единая операция в отношении вызовов функций с неопределенной последовательностью.
Так что в этом случае
rounding/=10.0;
означает
rounding = rounding / 10.0;
Причина, по которой он, вероятно, имеет 10.0
, а не 10
, заключается в том, что целочисленное деление исключается и вместо него используется .
Что еще нужно иметь в виду, это то, что /=
является оператором с меньшим приоритетом , чем /
, и что /=
работает справа налево, тогда как /
работает слева- направо.
На практике это означает, что что-то вроде
a /= 1 / 3 / 3;
будет таким же, как
a /= (1 / (3 / 3));
, что, учитывая, что =
также имеет тот же уровень приоритета, что и /=
, совпадает с
a = (a / (1 / (3 / 3)));