Это из-за приоритета оператора.
Java проходит там, где это упрощает экспресс.Он выполняет некоторые операции, затем при следующем проходе выполняет некоторые другие.«Самые высокие» операторы делаются первыми.Например, умножение перед сложением.Операторы ( )
находятся в первом проходе и позволяют вам переопределить нормальный порядок действий.
См. Эту таблицу: введите описание ссылки здесь
%
находится в той же группе, что и *
и /
.Они выполняются слева направо.
Итак, вы хотите (1/5) % 11
Но у вас есть другая проблема в том, что это будет сделано в математике с плавающей запятой, поэтому вы получите приблизительное, а не точноеправильный ответ.
Вам нужно использовать класс BigInteger
вместо встроенных примитивов.