Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Возвращает числовое значение, округленное до указанной длины или точности.
Соглашения о синтаксисе Transact-SQL
Синтаксис
ROUND ( numeric_expression , length [ , function ] )
Аргументы
numeric_expression
Выражение категории точного числового или приблизительного числового типа данных.
length
Точность, с которой numeric_expression должна быть округлена. длина должна быть выражением типа tinyint, smallint или int. Если длина является положительным числом, numeric_expression округляется до числа десятичных позиций, указанных по длине. Если аргумент length является отрицательным числом, значение numeric_expression округляется слева от десятичной запятой, как указано в аргументе length.
function
Тип операции, которую нужно выполнить. функция должна бытьtinyint, smallint или int. Когда функция опущена или имеет значение 0 (по умолчанию), numeric_expression округляется. Когда задаётся значение, отличное от 0 не, numeric_expression усекается.
Типы возвращаемых данных
Возвращает следующие типы данных.
| Результат выражения | Возвращаемый тип |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Категория decimal и numeric (p, s) | Десятичная(p, s) |
| Категории money и smallmoney | money |
| Категории float и real | float |
Замечания
ROUNDВсегда возвращает значение. Если длина — отрицательная и больше числа цифр до десятичной точки,ROUNDто возвращает0.Пример Результат ROUND(748.58, -4)0 ROUNDвозвращает округлённый numeric_expression, независимо от типа данных, когда длина — отрицательное число.Примеры Результат ROUND(748.58, -1)750,00 ROUND(748.58, -2)700.00 ROUND(748.58, -3)Это приводит к арифметическому переполнению, потому что 748.58 по умолчанию устанавливается на десятичную (5, 2), которая не может вернуть 1000.00.Чтобы округлить до четырёх цифр, измените тип данных на входе. Например:
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);Вот результирующий набор.
1000.00ROUNDРазрывает ничью, округляя половину от нуля (также известное как коммерческое округление).Примеры Результат ROUND(1.15, 1)1.2 ROUND(-1.15, 1)-1.2
Примеры
А. Используйте ROUND и оценки
Следующий пример показывает два выражения, которые демонстрируют с помощью ROUND, что последняя цифра всегда является оценкой.
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO
Вот результирующий набор.
----------- -----------
123.9990 124.0000
B. Используйте приближения ROUND и округление
В следующем примере показаны округление и аппроксимация.
SELECT ROUND(123.4545, 2),
ROUND(123.45, -2);
Вот результирующий набор.
---------- ----------
123.4500 100.00
В. Используйте ROUND для усечения
В следующем примере используются две инструкции SELECT для демонстрации различия между округлением и усечением. Первая инструкция округляет результат. Вторая инструкция усекает результат.
SELECT ROUND(150.75, 0);
GO
Вот результирующий набор.
151.00
SELECT ROUND(150.75, 0, 1);
GO
Вот результирующий набор.
150.00