Как округлить числа вверх до следующего целого числа

Возможный дубликат:
Округлить результаты деления до следующего целого числа в c

Есть ли функция, которая округляет double до следующего целого числа?

1.8 -> 2
1.01 ->2
0.99 ->1

-4

Решение

Взгляни на std::floor() а также std::ceil() в C ++

7

Другие решения

std::ceil() кажется, что вы ищете — Вычисляет ближайшее целое число не меньше чем arg.

1

Ты можешь использовать:

ceil(input)

или же

floor(1+input);
1

ceil (double x) возвращает следующий интеграл, который не ниже x

http://www.cplusplus.com/reference/clibrary/cmath/ceil/

1

основные функции ceil, floor, trunc; Я полагаю ceil будет вашим выбором.

1

Есть этаж(), который всегда округляется до меньшего числа, и CEIL (), который всегда округляется до большего числа.

Чтобы получить нормальное поведение при округлении, вы действительно должны использовать floor (i + 0.5).

Таким образом, у вас возникнут проблемы с отрицательными числами. Обойти эту проблему можно с помощью ceil () для отрицательных чисел:

  double round(double r) {
return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector