ROUND (Transact-SQL)
Возвращает числовое значение, округленное до указанной длины или точности.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
ROUND ( numeric_expression , length [ ,function ] )
Аргументы
- numeric_expression
Выражение категории типа точных числовых или приблизительных числовых данных, за исключением типа данных bit.
- length
Точность, до которой необходимо округлять значение аргумента numeric_expression. Аргумент length должен быть выражением типа tinyint, smallint или int. Когда аргумент length является положительным числом, numeric_expression округляется до числа десятичных разрядов, указанных в аргументе length. Когда length является отрицательным числом, numeric_expression округляется слева от точки, отделяющей десятичную дробь от целого числа, как указано в length.
- function
Тип операции, которую необходимо выполнить. Аргумент function должен иметь тип tinyint, smallint или int. Когда аргумент function опускается или имеет значение 0 (значение по умолчанию), аргумент numeric_expression округляется. Когда указывается значение, не равное 0, numeric_expression усекается.
Типы возвращаемых данных
Возвращает тот же тип, что и выражение numeric_expression.
Замечания
Функция ROUND всегда возвращает значение. Если аргумент length имеет отрицательное значение и больше числа знаков до точки, отделяющей десятичную дробь от целого числа, ROUND возвращает 0.
Пример | Результат |
---|---|
ROUND(748.58, -4) |
0 |
Функция ROUND возвращает округленное значение выражения numeric_expression независимо от типа данных, когда length является отрицательным числом.
Примеры | Результат |
---|---|
ROUND(748.58, -1) |
750.00 |
ROUND(748.58, -2) |
700.00 |
ROUND(748.58, -3) |
1000.00 |
Примеры
A. Использование функции ROUND и приближения
Следующий пример показывает два выражения, которые демонстрируют, используя ROUND
, что последний знак всегда является приближением.
SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)
GO
Ниже приводится результирующий набор.
----------- -----------
123.9990 124.0000
Б. Использование функции ROUND и округляющих аппроксимаций
В следующем примере показаны округление и аппроксимация.
SELECT ROUND(123.4545, 2);
GO
SELECT ROUND(123.45, -2);GO
Ниже приводится результирующий набор.
----------
123.4500
(1 row(s) affected)
--------
100.00
(1 row(s) affected)
В. Использование функции ROUND для усечения
В следующем примере используются две инструкции SELECT
для демонстрации различия между округлением и усечением. Первая инструкция округляет результат. Вторая инструкция усекает результат.
SELECT ROUND(150.75, 0);
GO
SELECT ROUND(150.75, 0, 1);
GO
Ниже приводится результирующий набор.
--------
151.00
(1 row(s) affected)
--------
150.00
(1 row(s) affected)
См. также
Справочник
CEILING (Transact-SQL)
Типы данных (Transact-SQL)
Выражения (Transact-SQL)
FLOOR (Transact-SQL)
Математические функции (Transact-SQL)