Перейти к содержимому
Последнее обновление

CEIL

Описание​

Округляет десятичные числа с плавающей и фиксированной точкой вверх до заданного числа разрядов и возвращает округлённое число с плавающей или фиксированной точкой.

Синтаксис​

CEIL(<a>[, <d>])

Параметры​

ПараметрОписание
<a>Параметр с плавающей точкой (Double) или фиксированной точкой (Decimal), задающий число для округления
<d>Необязательный целочисленный параметр, задающий целевое число разрядов для округления. Положительное число означает округление до следующего десятичного разряда, отрицательное число означает округление до следующего десятичного разряда, а 0 означает округление до целого числа. Если параметр не указан, это эквивалентно <d> = 0.

Возвращаемое значение​

Возвращает наименьшее округлённое число, которое больше или равно <a>, в соответствии со следующими правилами.

Округление выполняется до разряда 1/(10^d), то есть результат должен делиться без остатка на 1/(10^d). Если 1/(10^d) нельзя представить точно, для округления используется ближайшее представимое число соответствующего типа данных.

Если входной параметр <a> имеет тип Decimal, а именно Decimal(p, s), возвращаемое значение имеет следующий тип:

  • Decimal(p, 0), если <d> <= 0
  • Decimal(p, <d>), если 0 < <d> <= s
  • Decimal(p, s), если <d> > s

Если любой входной параметр равен NULL, возвращает NULL.

Псевдонимы​

  • DCEIL
  • CEILING

Примеры​

select ceil(123.456);
+---------------+
| ceil(123.456) |
+---------------+
| 124 |
+---------------+
select ceil(123.456, 2);
+------------------+
| ceil(123.456, 2) |
+------------------+
| 123.46 |
+------------------+
select ceil(123.456, -2);
+-------------------+
| ceil(123.456, -2) |
+-------------------+
| 200 |
+-------------------+
select ceil(123.45, 1), ceil(123.45), ceil(123.45, 0), ceil(123.45, -1);
+-----------------+--------------+-----------------+------------------+
| ceil(123.45, 1) | ceil(123.45) | ceil(123.45, 0) | ceil(123.45, -1) |
+-----------------+--------------+-----------------+------------------+
| 123.5 | 124 | 124 | 130 |
+-----------------+--------------+-----------------+------------------+
select ceil(x, 2) from ( select cast(123.456 as decimal(6,3)) as x from numbers("number"="5") )t;
+------------+
| ceil(x, 2) |
+------------+
| 123.46 |
| 123.46 |
| 123.46 |
| 123.46 |
| 123.46 |
+------------+
select ceil(NULL);
+------------+
| ceil(NULL) |
+------------+
| NULL |
+------------+