Функции округления
Приведённая ниже документация сгенерирована из системной таблицы system.functions
ceil
Добавлено в версии: v1.1.0
Аналог функции floor, но возвращает наименьшее число, округлённое в большую сторону, большее или равное x.
Если округление приводит к переполнению (например, ceiling(255, -1)), результат не определён.
Синтаксис
Псевдонимы: ceiling
Аргументы
x— значение для округления.Float*илиDecimal*или(U)Int*N— необязательный параметр. Количество десятичных знаков, до которых нужно округлить. По умолчанию — ноль, то есть округление до целого числа. Может быть отрицательным.(U)Int*
Возвращаемое значение
Возвращает округлённое число того же типа, что и x. Float* или Decimal* или (U)Int*
Примеры
Базовое использование
Отрицательная точность
floor
Появилась в версии: v1.1.0
Возвращает наибольшее число, не превосходящее x, округлённое таким образом, что результат кратен 1 / 10 * N, либо ближайшее число соответствующего типа данных, если 1 / 10 * N не может быть представлено точно.
Целочисленные аргументы могут быть округлены с отрицательным значением N.
При неотрицательном N функция возвращает x.
Если округление приводит к переполнению (например, floor(-128, -1)), результат не определён.
Синтаксис
Аргументы
x— Значение для округления.Float*илиDecimal*или(U)Int*N— Необязательный параметр. Количество знаков после запятой, до которых выполняется округление. По умолчанию равно нулю, что означает округление до целого числа. Может быть отрицательным.(U)Int*
Возвращаемое значение
Возвращает округлённое число того же типа, что и x. Float* или Decimal* или (U)Int*
Примеры
Пример использования
Отрицательная точность
round
Появилась в версии: v1.1.0
Округляет значение до указанного количества десятичных разрядов N.
- Если
N > 0, функция округляет вправо от десятичной точки. - Если
N < 0, функция округляет влево от десятичной точки. - Если
N = 0, функция округляет до ближайшего целого числа.
Функция возвращает ближайшее число указанного порядка.
Если входное значение равноудалено от двух соседних чисел, для значений типа Float* используется банковское округление, а для остальных числовых типов (Decimal*) — округление от нуля.
Если округление приводит к переполнению (например, round(255, -1)), результат не определён.
Синтаксис
Аргументы
x— число для округления.Float*илиDecimal*или(U)Int*N— необязательный параметр. Количество знаков после запятой, до которых нужно округлить. По умолчанию0.(U)Int*
Возвращаемое значение
Возвращает округлённое число того же типа, что и x. Float* или Decimal* или (U)Int*
Примеры
Входные данные типа Float
Десятичные значения
roundAge
Появилась в версии: v1.1.0
Принимает число, обозначающее возраст человека, сравнивает его со стандартными возрастными диапазонами и возвращает либо нижнюю, либо верхнюю границу диапазона, в который попадает число.
- Возвращает
0приage < 1. - Возвращает
17при1 ≤ age ≤ 17. - Возвращает
18при18 ≤ age ≤ 24. - Возвращает
25при25 ≤ age ≤ 34. - Возвращает
35при35 ≤ age ≤ 44. - Возвращает
45при45 ≤ age ≤ 54. - Возвращает
55приage ≥ 55.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает либо верхнюю, либо нижнюю границу возрастного диапазона, в который попадает age. UInt8
Примеры
Пример использования
roundBankers
Введена в: v20.1.0
Округляет число до заданного десятичного разряда N.
Если округляемое число находится посередине между двумя числами, функция использует метод округления, называемый банковским округлением (banker's rounding), который является методом округления по умолчанию для чисел с плавающей запятой, определённым стандартом IEEE 754.
- Если
N > 0, функция округляет вправо от десятичной точки - Если
N < 0, функция округляет влево от десятичной точки - Если
N = 0, функция округляет до ближайшего целого числа
- Когда округляемое число находится посередине между двумя числами, округление производится к ближайшей чётной цифре на заданной десятичной позиции.
Например:
3.5округляется вверх до4,2.5округляется вниз до2. - Функция
roundвыполняет такое же округление для чисел с плавающей запятой. - Функция
roundBankersтакже округляет целые числа аналогичным образом, например,roundBankers(45, -1) = 40. - В остальных случаях функция округляет числа до ближайшего целого.
Используя банковское округление, вы можете уменьшить влияние округления чисел на результаты их суммирования или вычитания.
Например, просуммируйте числа 1.5, 2.5, 3.5, 4.5 с различными методами округления:
- Без округления:
1.5 + 2.5 + 3.5 + 4.5 = 12. - Банковское округление:
2 + 2 + 4 + 4 = 12. - Округление до ближайшего целого:
2 + 3 + 4 + 5 = 14.
Синтаксис
Аргументы
x— Число для округления.(U)Int*илиDecimal*илиFloat*[, N]— Необязательный параметр. Количество знаков после запятой, до которых нужно округлить. По умолчанию0.(U)Int*
Возвращаемое значение
Возвращает значение, округлённое методом банковского округления. (U)Int* или Decimal* или Float*
Примеры
Базовое использование
roundDown
Появилась в версии: v20.1.0
Округляет число вниз до элемента в указанном массиве. Если значение меньше нижней границы массива, возвращается нижняя граница.
Синтаксис
Аргументы
num— Число, которое нужно округлить в меньшую сторону.(U)Int*илиDecimal*илиFloat*arr— Массив элементов, к которым нужно округлитьnumв меньшую сторону.Array((U)Int*)илиArray(Float*)
Возвращаемое значение
Возвращает число, округлённое в меньшую сторону до элемента из arr. Если значение меньше нижней границы, возвращается нижняя граница. (U)Int* или Float*
Примеры
Пример использования
roundDuration
Добавлено в: v1.1.0
Округляет число вниз до ближайшего значения из набора типичных длительностей: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000.
Если число меньше единицы, функция возвращает 0.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает 0, если num < 1. В противном случае — одно из следующих значений: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000. UInt16
Примеры
Пример использования
roundToExp2
Впервые появилась в версии: v1.1.0
Округляет число в меньшую сторону до ближайшей (целой неотрицательной) степени двойки.
Если число меньше единицы, возвращает 0.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает num, округлённое вниз до ближайшей (целой неотрицательной) степени двойки, в противном случае — 0 для num < 1. (U)Int* или Float*
Примеры
Пример использования
trunc
Введена в версии: v1.1.0
Аналог функции floor, но возвращает округлённое число с наибольшим абсолютным значением, меньшим либо равным абсолютному значению x.
Синтаксис
Псевдонимы: truncate
Аргументы
x— значение для округления.Float*илиDecimal*или(U)Int*N— необязательный аргумент. Количество знаков после запятой, до которых нужно округлить. По умолчанию — ноль, что означает округление до целого числа.(U)Int*
Возвращаемое значение
Возвращает округлённое число того же типа, что и x. Float* или Decimal* или (U)Int*
Примеры
Базовое использование