ROUND (Transact-SQL)
Zwraca wartość liczbową, zaokrągloną do określonej długości lub precision.
Składnia
ROUND ( numeric_expression , length [ ,function ] )
Argumenty
numeric_expression
Jest wyrażenie z dokładnie typ numeryczny lub przybliżonych danych numerycznych kategorii, z wyjątkiem bit typu danych.length
Określa dokładność, do której numeric_expression jest zaokrąglana.lengthmusi być wyrażenie typu tinyint, smallint, lub int.Gdy length jest liczbą dodatnią, numeric_expression jest zaokrąglana do liczby dziesiętnej położenia określonego przez length.Gdy length jest liczbą ujemną, numeric_expression jest zaokrąglana po lewej stronie przecinka dziesiętnego w sposób określony przez length.function
Jest to typ operacji do wykonania.functionmust be tinyint, smallint, or int.Gdy function zostanie pominięty lub ma wartość 0 (domyślnie), numeric_expression jest zaokrąglana.Gdy wartość inną niż określono wartość 0, numeric_expression jest obcięty.
Zwracane typy
Zwraca następujące typy danych.
Wyrażenie wyników |
Zwracany typ |
---|---|
tinyint |
int |
smallint |
int |
int |
int |
bigint |
bigint |
decimali numeric kategorii (p, s) |
decimal(p, s) |
moneyi smallmoney kategorii |
money |
floati real kategorii |
float |
Uwagi
ZAOKRĄGLONE zawsze zwraca wartość.Jeśli length jest większa niż liczba cyfr przed przecinkiem i ujemne, OKRĄGŁE zwraca wartość 0.
Przykład |
Wynik |
---|---|
OKRĄGŁE (748.58, -4) |
0 |
Zwraca zaokrągloną ROUND numeric_expression, niezależnie od typu danych, gdy length jest liczbą ujemną.
Przykłady |
Wynik |
---|---|
OKRĄGŁE (748.58, -1) |
750.00 |
OKRĄGŁE (748.58, -2) |
700.00 |
OKRĄGŁE (748.58, -3) |
W wyniku przepełnienie arytmetyczne, ponieważ domyślnie 748.58 decimal(5,2), który nie może zwrócić 1000,00. |
Aby zaokrąglić do 4 cyfr, zmienić typ danych dane wejściowe.Na przykład: SELECT ROUND(CAST (748.58 AS decimal (6,2)),-3); |
1000.00 |
Przykłady
A.Za pomocą OKRĄGŁYCH i oszacowań
W poniższym przykładzie przedstawiono dwa wyrażenia, które wykazują za pomocą ROUND Ostatnia cyfra jest zawsze szacowania.
SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)
GO
Oto zestaw wyników.
----------- -----------
123.9990 124.0000
B.Za pomocą ROUND i zaokrąglania przybliżeń
Następujący przykład ilustruje zaokrąglania i przybliżeń.
SELECT ROUND(123.4545, 2);
GO
SELECT ROUND(123.45, -2);
GO
Oto zestaw wyników.
----------
123.4500
(1 row(s) affected)
--------
100.00
(1 row(s) affected)
C.Za pomocą OKRĄGŁYCH obcinania
W poniższym przykładzie użyto dwóch SELECT instrukcji, aby wykazać, różnica zaokrąglania i obcinania.Pierwsza instrukcja zaokrągla wyniki.Druga instrukcja obcina wynik.
SELECT ROUND(150.75, 0);
GO
SELECT ROUND(150.75, 0, 1);
GO
Oto zestaw wyników.
--------
151.00
(1 row(s) affected)
--------
150.00
(1 row(s) affected)