перегружена функция Math.round
Когда он получит значение с плавающей точкой, он даст вам int. Например, это будет работать.
int a=Math.round(1.7f);
Когда он получает двойное значение, он дает вам длинное значение, поэтому вы должны привести его к типу int.
int a=(int)Math.round(1.7);
Это сделано для предотвращения потери точности. Ваше двойное значение равно 64 бита, но тогда ваша переменная int может хранить только 32 бита, поэтому она просто преобразует его в long, то есть 64 бита, но вы можете типизировать его до 32 бита, как описано выше.