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

Округляющие Функции

floor

Возвращает наибольшее округленное число, меньшее или равное x. Округленное число — это кратное 1 / 10 * N, или ближайшее число соответствующего типа данных, если 1 / 10 * N не является точным.

Целочисленные аргументы могут быть округлены с отрицательным N, с неотрицательным N функция возвращает x, т.е. ничего не делает.

Если округление вызывает переполнение (например, floor(-128, -1)), результат не определен.

Синтаксис

Параметры

  • x - Значение для округления. Float*, Decimal*, или (U)Int*.
  • N . (U)Int*. По умолчанию равен нулю, что означает округление до целого числа. Может быть отрицательным.

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

Округленное число того же типа, что и x.

Примеры

Запрос:

Результат:

Запрос:

Результат:

ceiling

Как floor, но возвращает наименьшее округленное число, большее или равное x.

Синтаксис

Псевдоним: ceil

truncate

Как floor, но возвращает округленное число с наибольшим абсолютным значением, которое имеет абсолютное значение меньшее или равное абсолютному значению x.

Синтаксис

Псевдоним: trunc.

Пример

Запрос:

round

Округляет значение до указанного количества десятичных знаков.

Функция возвращает ближайшее число указанного порядка. Если входное значение равно расстоянию до двух соседних чисел, функция использует банковское округление для Float* и округляет в сторону нуля для других типов чисел (Decimal*.

Синтаксис

Аргументы

  • x — Число для округления. Float*, Decimal*, или (U)Int*.
  • N — Количество десятичных знаков для округления. Целое число. По умолчанию 0.
    • Если N > 0, функция округляет вправо от десятичной точки.
    • Если N < 0, функция округляет влево от десятичной точки.
    • Если N = 0, функция округляет до следующего целого числа.

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

Округленное число того же типа, что и x.

Примеры

Пример с Float входными данными:

Пример с Decimal входными данными:

Чтобы сохранить конечные нули, включите установку output_format_decimal_trailing_zeros:

Примеры округления до ближайшего числа:

Банковское округление.

Смотрите также

roundBankers

Округляет число до указанной десятичной позиции.

Если число для округления находится точно посередине между двумя числами, функция использует банковское округление. Банковское округление — это метод округления дробных чисел. Когда число для округления находится ровно посередине между двумя числами, оно округляется к ближайшей четной цифре на указанной десятичной позиции. Например: 3.5 округляется до 4, 2.5 округляется до 2. Это метод округления по умолчанию для чисел с плавающей запятой, определенный в IEEE 754. Функция 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.

Синтаксис

Аргументы

  • N > 0 — Функция округляет число до указанной позиции вправо от десятичной точки. Пример: roundBankers(3.55, 1) = 3.6.

  • N < 0 — Функция округляет число до указанной позиции влево от десятичной точки. Пример: roundBankers(24.55, -1) = 20.

  • N = 0 — Функция округляет число до целого. В этом случае аргумент можно опустить. Пример: roundBankers(2.5) = 2.

  • x — Число для округления. Float*, Decimal*, или (U)Int*.

  • N — Количество десятичных знаков для округления. Целое число. По умолчанию 0.

    • Если N > 0, функция округляет вправо от десятичной точки.
    • Если N < 0, функция округляет влево от десятичной точки.
    • Если N = 0, функция округляет до следующего целого числа.

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

Значение, округленное методом банковского округления.

Примеры

Запрос:

Результат:

Примеры банковского округления:

Смотрите также

roundToExp2

Принимает число. Если число меньше единицы, возвращает 0. В противном случае округляет число вниз до ближайшей (целой неотрицательной) степени двойки.

Синтаксис

Параметры

  • num: Число для округления. UInt/Float.

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

  • 0, для num <1\lt 1. UInt8.
  • num округленный вниз до ближайшей (целой неотрицательной) степени двойки. UInt/Float, эквивалентный типу входного значения.

Пример

Запрос:

Результат:

roundDuration

Принимает число. Если число меньше одного, возвращает 0. В противном случае округляет число вниз до чисел из набора общепринятых длительностей: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000.

Синтаксис

Параметры

  • num: Число для округления до одного из чисел в наборе общепринятых длительностей. UInt/Float.

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

  • 0, для num <1\lt 1.
  • В противном случае одно из: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000. UInt16.

Пример

Запрос:

Результат:

roundAge

Принимает число в различных общепринятых диапазонах человеческого возраста и возвращает либо максимальное, либо минимальное значение в этом диапазоне.

Синтаксис

Параметры

  • age: Число, представляющее возраст в годах. UInt/Float.

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

  • Возвращает 0, для age<1age \lt 1.
  • Возвращает 17, для 1age171 \leq age \leq 17.
  • Возвращает 18, для 18age2418 \leq age \leq 24.
  • Возвращает 25, для 25age3425 \leq age \leq 34.
  • Возвращает 35, для 35age4435 \leq age \leq 44.
  • Возвращает 45, для 45age5445 \leq age \leq 54.
  • Возвращает 55, для age55age \geq 55.

Тип: UInt8.

Пример

Запрос:

Результат:

roundDown

Принимает число и округляет его вниз до элемента в заданном массиве. Если значение меньше нижней границы, возвращается нижняя граница.

Синтаксис

Параметры

  • num: Число для округления вниз. Numeric.
  • arr: Массив элементов, до которых округляется age. Array типов UInt/Float.

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

  • Число, округленное вниз до элемента в arr. Если значение меньше нижней границы, возвращается нижняя граница. UInt/Float, тип определяется из типа arr.

Пример

Запрос:

Результат: