Ваш код хорошо работает в положительном случае, как JB Nizet уже намекнул в комментарии.
Проблема в отрицательном случае. round(-23.6)
дает -23, а не -24. Это вызвано этой строкой:
if (check > -5 && check < 0) {
В случае -23,6 check
равно -6, что на меньше , чем -5. Я думаю, вы хотите проще:
if (check < -5) {
Теперь -23,6 округляется до -24. -23,5 все еще округляется до -23. Если вы хотели -24 и в этом случае:
if (check <= -5) {
Вы также можете подумать, хотели ли вы >=
в положительном случае.
Или просто используйте Math.round ()
Сурабх Бхат также прав в комментарии: вы заново изобретаете колесо. Math.round()
уже выполняет ту работу, которую выполняет ваш метод округления. Так что, если вы кодируете это как упражнение, хорошо, вы учитесь, это всегда хорошо. Для производственного кода вы должны вместо этого использовать существующий встроенный метод библиотеки.
int rounded = Math.toIntExact(Math.round(-23.6));
System.out.println("Rounded: " + rounded);
Округлено: -24