Поделиться через


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)

Справка и поддержка

Получение помощи по SQL Server 2005