Напишите функцию, которая принимает вещественное число, и возвращает целое число округленное

Напишите функцию, которая принимает вещественное число, и возвращает целое число округленное к ближайшему целому.

Вот мой код:

public static int round(double x) {
        double number = x - ((int)x);
        double result = x - ((int)(x));
        if(number < 0.5){
            return ((int) x);
        }
        if (result < 0 && result >= -0.5){
            return ((int)(x));
        }
        if (number >= 0.5){
            return ((int) x) + 1;
        }
        else {
            return (int)x + (-1);
        }
    }

Округляет верно только положительные числа отрицательные - нет

Подскажите пожалуйста где у меня ошибка может быть?


Ответы (1 шт):

Автор решения: Fyodor
public static int round(double x) {
    if(x>=0) return (int)(x+0.5);
    else return (int)(x-0.5);
}

Есть ещё класс java.lang.Math и в нём есть методы round() для округления, но -1.5 он округлит как -1

→ Ссылка