Кажется, я не могу найти ответ, который ищу, относительно простого вопроса: как мне округлить любое число до ближайшего int
?
Например, всякий раз, когда число равно 0,2, 0,7, 0,2222, 0,4324, 0,99999, я бы хотел, чтобы результат был 1.
Пока у меня есть
int b = (int) Math.ceil(a / 100);
Похоже, это не делает работу.
a
есть целочисленный тип.Ответы:
Math.ceil()
правильная функция для вызова. Я предполагаю , чтоa
этоint
, что сделаетa / 100
выполнить целочисленную арифметику. ПопробуйMath.ceil(a / 100.0)
вместо этого.Выходы:
Смотрите http://ideone.com/yhT0l
источник
a
Этоint
в этом примере, и он работает как предложено. При выполнении,int / float
результатfloat
, как показано в выводе. Попробуйте ссылку.Я не знаю, почему вы делите на 100, но здесь мое предположение
int a;
или
источник
Это, казалось, сделало идеальную работу. Работал каждый раз.
источник
10 лет спустя, но эта проблема все еще поймала меня.
Так что это ответ на те, которые слишком поздно, как я.
Это не работает
Потому что результат
a / 100
оказывается целым числом и округляется, поэтому Math.ceil ничего не может с этим поделать.Вы должны избегать округленной операции с этим
Теперь это работает.
источник
Самый простой способ сделать это просто: вы получите float или double и захотите, чтобы он конвертировал его в ближайший раунд, тогда просто сделайте, чтобы
System.out.println((int)Math.ceil(yourfloat));
он работал отличноисточник
Предполагая двойное число, и нам нужно округленное число без десятичного знака. Используйте функцию Math.round ().
Это идет как мое решение.
источник