Числовые функции
Числовые функции оперируют с числовыми значениями, изменяя их в соответствии с требуемым алгоритмом. Представленные здесь функции обеспечивают выполнение общепринятых математических операций.
ROUND
Функция ROUND округляет числа с любой заданной точностью. Она имеет следующий синтаксис:
ROUND(входноe_значение, число_знаков_после_десятичной_точки)
Для использования функции ROUND (как и любой другой функции, модифицирующей значение) ей нужно передать значение, подлежащее модификации. Поскольку обычно это делается в операторе SELECT, функции передается имя столбца, содержащего модифицируемые значения, например:
SELECT product_name, ROUND(product_price, 0) FROM product;
Этот пример показывает один из наиболее распространенных способов применения функции ROUND, когда нужно округлить числа до целых значений. Другое применение — округление слишком точных значений, содержащих много знаков после десятичной точки, до рублей и копеек. Для этого потребуется указать точность, равную 2. Можно указывать любое число десятичных знаков, но некоторые значения имеют больше смысла, чем другие. Если указать отрицательное число, то функция ROUND начнет округление до десятичной точки, иначе говоря, числа будут округляться до ближайших десятков, сотен, тысяч и т. д.
Лучший способ увидеть связь между точностью, задаваемой в функции ROUND, и изменением, которое производится в обрабатываемом числе, — это применить функцию к числам, содержащим много десятичных знаков, воспользовавшись таблицей DUAL:
SELECT ROUND(1234.5678, 4) FROM DUAL;
SELECT ROUND(1234.5678, 3) FROM DUAL;
SELECT ROUND(1234.5678, 2) FROM DUAL;
SELECT ROUND(1234.5678, 1} FROM DUAL;
SELECT ROUND(1234.5678, 0) FROM DUAL;
SELECT ROUND(1234.5678, -1) FROM DUAL;
SELECT ROUND(1234.5678, -2) FROM DUAL;
SELECT ROUND(1234.5678, -3) FROM DUAL;
Результаты показаны в табл. 2.1.
Таблица 2.1
Результаты применения функции ROUND
-
Функция ROUND
Возвращаемое значение
ROUND (1234.5678, 4)
1234.5678
ROUND (1234.5678, 3)
1234.568
ROUND (1234.5678, 2)
1234.57
ROUND (1234.5678, 1)
1234.6
ROUND (1234.5678, 0)
1235
ROUND (1234.5678, -1)
1230
ROUND (1234.5678, -2)
1200
ROUND (1234.5678, -3)
1000
TRUNC
Функция TRUNC усекает число, понижая его точность. Различие между усечением и округлением проявляется, когда за последним из остающихся десятичных разрядов идет значение 5 и выше. Округление привело бы к увеличению содержимого последнего разряда на 1, тогда как при усечении этого не происходит (табл. 2.2).
Таблица 2.2
Результаты применения функции TRUNC
-
Функция TRUNC
Возвращаемое значение
TRUNC (1234.5678, 4)
1234.5678
TRUNC (1234.5678, 3)
1234.567
TRUNC (1234.5678, 2)
1234.56
TRUNC (1234.5678, 1)
1234.5
TRUNC (1234.5678, 0)
1234
TRUNC (1234.5678, -1)
1230
TRUNC (1234.5678, -2)
1200
TRUNC (1234.5678, -3)
1000
