Udostępnij za pośrednictwem


ROUND (Transact-SQL)

Zwraca wartość liczbową, zaokrągloną do określonej długości lub precision.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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)