что делает функция round
ROUND (Transact-SQL)
Возвращает числовое значение, округленное до указанной длины или точности.
Синтаксические обозначения в Transact-SQL
Синтаксис
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
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 усекается.
Типы возвращаемых данных
Возвращает следующие типы данных.
Результат выражения | Возвращаемый тип |
---|---|
tinyint | int |
smallint | int |
int | int |
bigint | bigint |
Категория decimal и numeric (p, s) | decimal(p, s) |
Категории money и smallmoney | money |
Категории float и real | float |
Remarks
Функция ROUND всегда возвращает значение. Если аргумент length имеет отрицательное значение и больше числа знаков перед десятичной запятой, ROUND возвращает 0.
Функция ROUND возвращает округленное значение выражения numeric_expression независимо от типа данных, когда length является отрицательным числом.
SELECT ROUND(CAST (748.58 AS decimal (6,2)),-3);
Примеры
A. Использование функции ROUND и приближений
Б. Использование функции ROUND и округляющих аппроксимаций
В следующем примере показаны округление и аппроксимация.
В. Использование функции ROUND для усечения
В следующем примере используются две инструкции SELECT для демонстрации различия между округлением и усечением. Первая инструкция округляет результат. Вторая инструкция усекает результат.
Функции Int, Round, RoundDown, RoundUp и Trunc в Power Apps
Round, RoundDown и RoundUp
Функции Round, RoundDown и RoundUp округляют число до указанного количества знаков после запятой (десятичных разрядов).
Число десятичных знаков, допускаемых для этих функций:
Int и Trunc
Функции Int и Trunc округляют число до целого (целое число без десятичной дроби):
Десятичные разряды нельзя указывать с помощью Trunc как это можно с Microsoft Excel. Вместо этого используйте RoundDown, когда это необходимо.
Таблицы с одним столбцом
Эти функции поддерживают таблицы с одним столбцом. При передаче одного числа возвращаемое значение является округленной версией такого числа. При передаче таблицы, содержащей один столбец с числами, возвращаемое значение представляет таблицу из одного столбца с округленными числами. Параметр DecimalPlaces может быть одним значением или таблицей с одним столбцом. Если в таблице с одним столбцом меньше значений, чем Число, для остальных значений используется ноль. Используйте ShowColumns и другие функции формирования таблиц для извлечения таблицы с одним столбцом из таблицы большего размера.
Синтаксис
Round( Number, DecimalPlaces )
RoundDown( Number, DecimalPlaces )
RoundUp( Number, DecimalPlaces )
Int(Число)
Trunc(Число)
Примеры
Округление до целого числа.
X | Round( X, 0 ) | RoundUp( X, 0 ) | RoundDown( X, 0 ) | Int( X ) | Trunc( X ) |
---|---|---|---|---|---|
7.9 | 8 | 8 | 7 | 7 | 7 |
-7,9 | -8 | -8 | -7 | -8 | -7 |
7.5 | 8 | 8 | 7 | 7 | 7 |
-7,5 | -8 | -8 | -7 | -8 | -7 |
7.1 | 7 | 8 | 7 | 7 | 7 |
-7,1 | -7 | -8 | -7 | -8 | -7 |
Округление до двух десятичных знаков справа от десятичного разделителя (0,01).
X | Round( X, 2 ) | RoundUp( X, 2 ) | RoundDown( X, 2 ) |
---|---|---|---|
430.123 | 430.12 | 430.13 | 430.12 |
430.125 | 430.13 | 430.13 | 430.12 |
430.128 | 430.13 | 430.13 | 430.12 |
Округление до двух десятичных знаков слева от десятичного разделителя (100).
Округление для таблицы значений с одним столбцом.
Функция round() в Python
Функция round() в Python используется для выполнения операции округления чисел.
Число округляется с точностью до ndigits после десятичной точки. Если ndigit не указан или равно None, возвращается ближайшее целое число.
При округлении входного числа до целого числа, если значения округления в большую и меньшую сторону одинаково близки, возвращается четное число. Например, 10,5 будет округлено до 10, а 11,5 будет округлено до 12.
Для ndigits допустимо любое целочисленное значение (положительное, нулевое или отрицательное).
Примеры функции
Давайте посмотрим на пример функции round().
round() в целое число:
round() в четную сторону:
round() с ndigit, как None:
round() с отрицательной цифрой:
С плавающей запятой
Когда округление применяется к числам с плавающей запятой, результат иногда может быть неожиданным. Это потому, что числа хранятся в двоичном формате, и в большинстве случаев десятичные дроби не могут быть представлены точно, как двоичные дроби.
Python выполняет аппроксимацию и представляет нам округленное значение, поскольку эта арифметика с плавающей запятой иногда может приводить к неожиданным значениям.
Давайте посмотрим на несколько примеров функции round() с числами с плавающей запятой.
Обратите внимание, что округление первого числа с плавающей запятой кажется неправильным. В идеале его следует округлить до 2,68.
Это ограничение арифметических операций с числами с плавающей запятой, мы не должны полагаться на условную логику при работе с числами с плавающей запятой.
round() с настраиваемым объектом
Мы также можем использовать функцию round() с настраиваемым объектом, если они реализуют функцию __round __(). Давайте посмотрим на пример.