ceil(3)

НАИМЕНОВАНИЕ
ceil, ceilf, ceill - функции округления до наименьшего целого, не меньшего, чем аргумент

БИБЛИОТЕКА
Math library (libm, -lm)

ОБЗОР
#include <math.h>

double ceil(double x);
float ceilf(float x);
long double ceill(long double x);

    Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

ceilf(), ceill():
    _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
        || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
        || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

ОПИСАНИЕ
Данные функции возвращают наименьшее целое значение, но не меньше чем x.

Например, результатом ceil(0.5) будет 1.0, а ceil(-0.5) равно -0.0.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Данные функции возвращают округлённое значение x.

Если x целое, +0, -0, NaN или стремится к бесконечности, то будет возвращено значение x.

ОШИБКИ
Ошибки не возникают.

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
ceil(), ceilf(), ceill() | Безвредность в нитях | MT-Safe

СТАНДАРТЫ
C11, POSIX.1-2008.

ИСТОРИЯ
C99, POSIX.1-2001.

Вариант, возвращающий значение типа double, также соответствует SVr4, 4.3BSD, C89.

В SUSv2 и POSIX.1-2001 есть текст о переполнении (которое может установить errno в ERANGE или вызвать исключение FE_OVERFLOW). На практике, результат не может выйти за диапазон ни на каком компьютере, поэтому обработка этой ошибки не имела смысла (точнее говоря, переполнение возможно только в том случае, когда максимальное значение экспоненты меньше числа бит мантиссы. В стандарте IEEE-754 для 32- и 64-битных чисел с плавающей точкой максимальное значение экспоненты равно 127 и 1023 соответственно, а число бит мантиссы — 24 и 53 соответственно).

Целая часть, возвращаемая этими функциями, может быть слишком большой для целого типа (int, long и так далее). Чтобы избежать переполнения, которое может привести к неопределенным результатам, приложение должно осуществлять проверку возвращаемого размера значения до того, как присвоить его целому типу.

СМОТРИТЕ ТАКЖЕ
floor(3), lrint(3), nearbyint(3), rint(3), round(3), trunc(3)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).