Round (transact-sql)

Точність, до якої необхідно округляти значення аргументу numeric_expression. Аргумент length повинен бути виразом типу tinyint. smallint або int. Коли аргумент length є позитивним числом, numeric_expression округляється до числа десяткових розрядів, зазначених в аргументі length. Коли length є негативним числом, numeric_expression округляється зліва від точки, яка відділяє десяткову дріб від цілого числа, як зазначено в length.

Тип операції, яку необхідно виконати. Аргумент function повинен мати тип tinyint. smallint або int. Коли аргумент function опускається або має значення 0 (значення за замовчуванням), аргумент numeric_expression округляється. Коли вказується значення, не рівне 0, numeric_expression буде скорочуватися.

Повертає наступні типи даних.

Тип повертаються даних

Функція ROUND завжди повертає значення. Якщо аргумент length має від'ємне значення і більше числа знаків до точки, яка відділяє десяткову дріб від цілого числа, ROUND повертає 0.

Функція ROUND повертає округлене значення виразу numeric_expression незалежно від типу даних, коли length є негативним числом.

В результаті виникає арифметичне переповнення, так як для значення 748,58 за замовчуванням використовується тип decimal (5,2), який не дозволяє повернути значення 1000,00.

Щоб округлити результат до чотирьох цифр, змініть тип даних на вході. наприклад:

SELECT ROUND (CAST (748.58 AS decimal (6,2)), - 3);

А. Використання функції ROUND і приблизних значень

Наступний приклад показує два вирази, які показують, що при використанні функції ROUND останній знак завжди є приблизними.