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