Java округлить любое число - PullRequest
129 голосов
/ 27 декабря 2010

Я не могу найти ответ, который ищу, по простому вопросу: как округлить любое число до ближайшего int?

Например, всякий раз, когда число равно 0,2, 0,7, 0,2222, 0,4324, 0,99999, я бы хотел, чтобы результат равнялся 1.

Пока у меня есть

int b = (int) Math.ceil(a / 100);

Хотя, похоже, он не выполняет свою работу.

Ответы [ 4 ]

252 голосов
/ 27 декабря 2010

Math.ceil() - правильная функция для вызова. Я предполагаю, что a - это int, что заставит a / 100 выполнять целочисленную арифметику. Попробуйте Math.ceil(a / 100.0) вместо.

int a = 142;
System.out.println(a / 100);
System.out.println(Math.ceil(a / 100));
System.out.println(a / 100.0);
System.out.println(Math.ceil(a / 100.0));
System.out.println((int) Math.ceil(a / 100.0));

Выходы:

1
1.0
1.42
2.0
2

См. http://ideone.com/yhT0l

15 голосов
/ 27 декабря 2010

Я не знаю, почему вы делите на 100, но здесь мое предположение int a;

int b = (int) Math.ceil( ((double)a) / 100);

или

int b = (int) Math.ceil( a / 100.0);
10 голосов
/ 31 января 2016
int RoundedUp = (int) Math.ceil(RandomReal);

Казалось, что это идеальная работа.Работал каждый раз.

0 голосов
/ 02 июня 2017

Предполагая двойное число, и нам нужно округленное число без десятичного знака.Используйте функцию Math.round ().
Это моё решение.

double a = 0.99999;
int rounded_a = (int)Math.round(a);
System.out.println("a:"+rounded_a );

Output : 
a:1
...