Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zwraca wartość liczbową, zaokrągloną do określonej długości lub precyzji.
Transact-SQL konwencje składni
Składnia
ROUND ( numeric_expression , length [ , function ] )
Arguments
numeric_expression
Wyrażenie dokładnej kategorii numerycznego lub przybliżonego numerycznego typu danych.
length
Precyzja, do jakiej numeric_expression ma być zaokrąglona. Długość musi być wyrażeniem typu tinyint, smallint lub int. Gdy długość jest liczbą dodatnią, numeric_expression jest zaokrąglana do liczby pozycji dziesiętnych określonej przez długość. Gdy długość jest liczbą ujemną, numeric_expression jest zaokrąglona po lewej stronie przecinka dziesiętnego, zgodnie z długością.
funkcja
Rodzaj operacji do wykonania.
funkcja musi być tinyint, smallint lub int. Gdy funkcja jest pomijana lub ma wartość ( 0 domyślną), numeric_expression jest zaokrąglana. Gdy wartość inna niż 0 jest określona, numeric_expression jest obcięta.
Typy zwracane
Zwraca następujące typy danych.
| Wynik wyrażenia | Typ zwracany |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Kategoria dziesiętna i liczbowa (P, S) | dziesiętny (p, s) |
| Kategoria pieniędzy i drobnych pieniędzy | pieniędzy |
| Kategoria float i rzeczywiste | float |
Uwagi
ROUNDzawsze zwraca wartość. Jeśli długość jest ujemna i większa niż liczba cyfr przed przecinkiem dziesiętnym,ROUNDzwraca0.Example Wynik ROUND(748.58, -4)0 ROUNDzwraca zaokrągloną numeric_expression, niezależnie od typu danych, gdy długość jest liczbą ujemną.Przykłady Wynik ROUND(748.58, -1)750.00 ROUND(748.58, -2)700,00 ROUND(748.58, -3)Skutkuje przepełnieniem arytmetyki, ponieważ 748.58 domyślnie przyjmuje dziesiętny(5, 2), który nie może zwrócić 1000.00.Aby zaokrąglić do czterech cyfr, zmień typ danych danych wejściowych. Przykład:
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);Oto zestaw wyników.
1000.00ROUNDprzerywa remis, zaokrąglając o połowę od zera (znane również jako zaokrąglanie komercyjne).Przykłady Wynik ROUND(1.15, 1)1.2 ROUND(-1.15, 1)-1.2
Przykłady
A. Użyj ROUND i szacunków
Poniższy przykład pokazuje dwa wyrażenia, które pokazują, że używając ROUND, ostatnia cyfra jest zawsze estymacją.
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO
Oto zestaw wyników.
----------- -----------
123.9990 124.0000
B. Użyj ROUND i przybliżeń zaokrągleń
Poniższy przykład pokazuje zaokrąglenie i przybliżenia.
SELECT ROUND(123.4545, 2),
ROUND(123.45, -2);
Oto zestaw wyników.
---------- ----------
123.4500 100.00
C. Użyj ROUND do skracania
Poniższy przykład wykorzystuje dwa SELECT stwierdzenia, aby pokazać różnicę między zaokrągleniem a obcięciem. Pierwsze zdanie zaokrągla wynik. Drugie zdanie skraca wynik.
SELECT ROUND(150.75, 0);
GO
Oto zestaw wyników.
151.00
SELECT ROUND(150.75, 0, 1);
GO
Oto zestaw wyników.
150.00