Напишите функцию, которая принимает вещественное число, и возвращает целое число округленное
Напишите функцию, которая принимает вещественное число, и возвращает целое число округленное к ближайшему целому.
Вот мой код:
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