Как округлить десятичное число до ближайшего «целого» номера?JAVA Раунд до ближайшего номера
ответ
Вы можете попробовать использовать
float x = (float)Math.ceil(x);
или
float y = (float)Math.round(y);
Также обратите внимание, что я преобразовал их обратно, чтобы плавать, так как может быть потеря точности при преобразовании двойной плавать.
зачем плавать и не удваивать? – Alaychem
@Alaychem: - Вы также можете взять двойное. Та же логика. Я выбрал поплавок! –
Это не совсем сработает, но оно перевернуло идею. 'float x = (float) Math.ceil (x);' объявляет новую переменную и затем пытается использовать неопределенное значение этой переменной, чтобы присвоить значение этой переменной. –
One line ответ!
public static long roundToClosestLong(long num, long div) {
return (long) num/div + ((double) (num % div)/div < 0.5 ? 0 : 1);
}
Для этого вы можете использовать класс java.lang.Math
.
- Math#round(double) Будет accecpt
double
в качестве аргумента и возвращаетlong
- Math#round(float) Будет accecpt
float
в качестве аргумента и возвращаетint
Вы можете сделать:
int result = (int) (yourValue + 0.5);
если вам просто нужно простое округление это, возможно, более эффективное решение, чем Math.round(yourValue)
@ RahulV.Mane, хотя можно понять ответ на мой вопрос из предложенной вами темы, это не тот же вопрос, и не те же ответы. – Alaychem