Java Round up Any Number

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

Например, когда число равно 0.2, 0.7, 0.2222, 0.4324, 0.99999, я бы хотел, чтобы результат был равным 1.

До сих пор у меня

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

Однако, похоже, он не выполняет эту работу.

Ответ 1

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

Ответ 2

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

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

или

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

Ответ 3

int RoundedUp = (int) Math.ceil(RandomReal);

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

Ответ 4

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

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

Output : 
a:1