Функции ROUND, TRUNC и MOD

Функции ROUND, TRUNC и MOD

В посте рассматриваются функции ROUND, TRUNC и MOD относящиеся к функциям по работе с числовыми данными.

Существенным отличием между числовыми и другими функциями является то, что они принимают и возвращают только числовые данные. Oracle предоставляет числовые функции для решения тригонометрических, степенных и логарифмических задач. Ниже рассматриваются три однострочные числовые функции – ROUND, TRUNC и MOD:

Функция ROUND выполняет операцию округления числового значения на основе указанной десятичной точности. Возвращаемое значение округляется в большую или меньшую сторону в зависимости от числового значения значащей цифры в позиции, задаваемой десятичной точностью. Если заданная десятичная точность равна n, то значимая для округления позиция является: (n + 1)-я относительно десятичной запятой (точки) вправо для n>=0 и (0-n)-я относительно десятичной запятой (точки) влево для n<0. Если числовое значение значащей цифры больше или равно 5, происходит «округление вверх», иначе происходит «округление вниз». Синтаксис функции:

ROUND (числовое значение, (десятичная точность)),

Описания десятичной точности

Десятичная точностьДесятичная позиция
-4десятки тысяч (n*10000)
-3тысячи (n * 1000)
-2сотни (n * 100)
-1десятки (n * 10)
0единицы (n * 1)
1десятых (n ÷ 10)
2сотых (n ÷ 100)
3тысячных (n ÷ 1000)
4десятитысячных (n ÷ 10000)

Примеры использования функции ROUND:

SELECT round(2020.240352, 1) FROM dual;

SELECT round(2020.240352, 4) FROM dual;

SELECT round(2020.240352, -3) FROM dual;

SELECT round(2020.240352, 0) FROM dual;

Если для примера выше опустить значение десятичной точности 0, то получается идентичный результат. При отсутствии десятичной точности, функция ROUND обрабатывает целую часть числа, как это было бы с десятичной точностью равной 0:

SELECT round(2020.240352) FROM dual;

Функция TRUNC выполняет операцию усечения числового значения на основе указанной десятичной точности. Числовое усечение отличается от округления тем, что результирующее значение отбрасывает числовые знаки с позиции (n+1)-й вправо от десятичной запятой (точки) указанной десятичной точности n, если десятичная точность положительна или равна нулю. Если заданная десятичная точность n отрицательна, в исходном числе проставляются значащие нули до (0-n)-й десятичной позиции включительно влево от десятичной запятой (точки). Синтаксис функции:

TRUNC (числовое значение, (десятичная точность)).

Примеры использования функции TRUNC:

SELECT trunc(2020.240352, 1) FROM dual;

SELECT trunc(2020.240352, 4) FROM dual;

SELECT trunc(2020.240352, -3) FROM dual;

При отсутствии десятичной точности, функция TRUNC обрабатывает целую часть числа, как это было бы с десятичной точностью равной нулю:

SELECT trunc(2020.240352) FROM dual;

Функция MOD возвращает числовой остаток от операции деления. Функция MOD выполняет операцию модульного деления. Ее синтаксис:

MOD (делимое, делитель)

Примеры использования функции MOD:

SELECT mod(7,2) FROM dual;

Результат:
1

SELECT mod(8,2) FROM dual;

Результат:
0

SELECT mod(21,2.7) FROM dual;

Результат:
2.1

SELECT mod(4,9) FROM dual;

Результат:
4

Leave a Reply

Your email address will not be published. Required fields are marked *