mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 10:52:30 +00:00
2d2bc052e1
* Typo fix. * Links fix. * Fixed links in docs. * More fixes. * docs/en: cleaning some files * docs/en: cleaning data_types * docs/en: cleaning database_engines * docs/en: cleaning development * docs/en: cleaning getting_started * docs/en: cleaning interfaces * docs/en: cleaning operations * docs/en: cleaning query_lamguage * docs/en: cleaning en * docs/ru: cleaning data_types * docs/ru: cleaning index * docs/ru: cleaning database_engines * docs/ru: cleaning development * docs/ru: cleaning general * docs/ru: cleaning getting_started * docs/ru: cleaning interfaces * docs/ru: cleaning operations * docs/ru: cleaning query_language * docs: cleaning interfaces/http * Update docs/en/data_types/array.md decorated ``` Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/getting_started/example_datasets/nyc_taxi.md fixed typo Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/getting_started/example_datasets/ontime.md fixed typo Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/interfaces/formats.md fixed error Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/table_engines/custom_partitioning_key.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/utils/clickhouse-local.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/dicts/external_dicts_dict_sources.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/utils/clickhouse-local.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/json_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/json_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/other_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/other_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/date_time_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/table_engines/jdbc.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * docs: fixed error * docs: fixed error
88 lines
5.0 KiB
Markdown
88 lines
5.0 KiB
Markdown
# Функции округления
|
||
|
||
## floor(x\[, N\])
|
||
Возвращает наибольшее круглое число, которое меньше или равно, чем x.
|
||
Круглым называется число, кратное 1 / 10N или ближайшее к нему число соответствующего типа данных, если 1 / 10N не представимо точно.
|
||
N - целочисленная константа, не обязательный параметр. По умолчанию - ноль, что означает - округлять до целого числа.
|
||
N может быть отрицательным.
|
||
|
||
Примеры: `floor(123.45, 1) = 123.4, floor(123.45, -1) = 120.`
|
||
|
||
`x` - любой числовой тип. Результат - число того же типа.
|
||
Для целочисленных аргументов имеет смысл округление с отрицательным значением N (для неотрицательных N, функция ничего не делает).
|
||
В случае переполнения при округлении (например, floor(-128, -1)), возвращается implementation specific результат.
|
||
|
||
## ceil(x\[, N\])
|
||
Возвращает наименьшее круглое число, которое больше или равно, чем x.
|
||
В остальном, аналогично функции floor, см. выше.
|
||
|
||
## round(x\[, N\]) {#rounding_functions-round}
|
||
|
||
Округляет значение до указанного десятичного разряда.
|
||
|
||
Функция возвращает ближайшее значение указанного порядка. В случае, когда заданное число равноудалено от чисел необходимого порядка, функция возвращает то из них, которое имеет ближайшую чётную цифру (банковское округление).
|
||
|
||
```sql
|
||
round(expression [, decimal_places])
|
||
```
|
||
|
||
**Параметры:**
|
||
|
||
- `expression` — Число для округления. Может быть любым [выражением](../syntax.md#syntax-expressions), возвращающим числовой [тип данных](../../data_types/index.md#data_types).
|
||
- `decimal-places` — Целое значение.
|
||
- Если `decimal-places > 0`, то функция округляет значение справа от запятой.
|
||
- Если `decimal-places < 0` то функция округляет значение слева от запятой.
|
||
- Если `decimal-places = 0`, то функция округляет значение до целого. В этом случае аргумент можно опустить.
|
||
|
||
**Возвращаемое значение:**
|
||
|
||
Округлённое значение того же типа, что и входящее.
|
||
|
||
|
||
### Примеры
|
||
|
||
**Пример использования**
|
||
|
||
```sql
|
||
SELECT number / 2 AS x, round(x) FROM system.numbers LIMIT 3
|
||
```
|
||
```text
|
||
┌───x─┬─round(divide(number, 2))─┐
|
||
│ 0 │ 0 │
|
||
│ 0.5 │ 0 │
|
||
│ 1 │ 1 │
|
||
└─────┴──────────────────────────┘
|
||
```
|
||
|
||
**Примеры округления**
|
||
|
||
Округление до ближайшего числа.
|
||
|
||
```text
|
||
round(3.2, 0) = 3
|
||
round(4.1267, 2) = 4.13
|
||
round(22,-1) = 20
|
||
round(467,-2) = 500
|
||
round(-467,-2) = -500
|
||
```
|
||
|
||
Банковское округление.
|
||
|
||
```text
|
||
round(3.5) = 4
|
||
round(4.5) = 4
|
||
round(3.55, 1) = 3.6
|
||
round(3.65, 1) = 3.6
|
||
```
|
||
|
||
## roundToExp2(num)
|
||
Принимает число. Если число меньше единицы - возвращает 0. Иначе округляет число вниз до ближайшей (целой неотрицательной) степени двух.
|
||
|
||
## roundDuration(num)
|
||
Принимает число. Если число меньше единицы - возвращает 0. Иначе округляет число вниз до чисел из набора: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000. Эта функция специфична для Яндекс.Метрики и предназначена для реализации отчёта по длительности визита.
|
||
|
||
## roundAge(num)
|
||
Принимает число. Если число меньше 18 - возвращает 0. Иначе округляет число вниз до чисел из набора: 18, 25, 35, 45, 55. Эта функция специфична для Яндекс.Метрики и предназначена для реализации отчёта по возрасту посетителей.
|
||
|
||
[Оригинальная статья](https://clickhouse.yandex/docs/ru/query_language/functions/rounding_functions/) <!--hide-->
|