Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar ett numeriskt värde, avrundat till angiven längd eller precision.
Transact-SQL syntaxkonventioner
Syntax
ROUND ( numeric_expression , length [ , function ] )
Arguments
numeric_expression
Ett uttryck för den exakta numeriska eller approximativa numeriska datatypkategorin.
length
Den precision med vilken numeric_expression ska avrundas. längd måste vara ett uttryck av typen tinyint, smallint eller int. När längden är ett positivt tal avrundas numeric_expression till antalet decimalpositioner som anges av längden. När längden är ett negativt tal avrundas numeric_expression på vänster sida av decimalpunkten, enligt längden.
funktion
Vilken typ av operation som ska utföras.
Funktionen måste vara Tinyint, Smallint eller Int. När funktionen utelämnas eller har värdet ( 0 standard), avrundas numeric_expression . När ett annat värde än 0 anges är numeric_expression trunkerat.
Returtyper
Returnerar följande datatyper.
| Uttrycksresultat | Returtyp |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Decimal - och numerisk kategori (P, S) | Decimal(p, s) |
| Kategori pengar och småpengar | pengar |
| Flytt och reell kategori | float |
Anmärkningar
ROUNDReturnerar alltid ett värde. Om längden är negativ och större än antalet siffror före decimalpunkten,ROUNDåterger0.Example Result ROUND(748.58, -4)0 ROUNDreturnerar en avrundad numeric_expression, oavsett datatyp, när längden är ett negativt tal.Examples Result ROUND(748.58, -1)750.00 ROUND(748.58, -2)700.00 ROUND(748.58, -3)Resulterar i ett aritmetiskt överflöd, eftersom 748,58 som standard går till decimal(5, 2), vilket inte kan returnera 1000.00.För att avrunda upp till fyra siffror, ändra datatypen för indatan. Till exempel:
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);Här är resultatet.
1000.00ROUNDBryter oavgjort genom att avrunda halvvägen från noll (även kallat kommersiell avrundning).Examples Result ROUND(1.15, 1)1.2 ROUND(-1.15, 1)-1.2
Examples
A. Använd ROUND och uppskattningar
Följande exempel visar två uttryck som visar genom att använda ROUND, den sista siffran är alltid en uppskattning.
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO
Här är resultatet.
----------- -----------
123.9990 124.0000
B. Använd RUND- och avrundningsapproximationer
Följande exempel visar avrundning och approximationer.
SELECT ROUND(123.4545, 2),
ROUND(123.45, -2);
Här är resultatet.
---------- ----------
123.4500 100.00
C. Använd RUND för att förkorta
Följande exempel använder två SELECT påståenden för att visa skillnaden mellan avrundning och trunkering. Det första påståendet rundar av resultatet. Det andra påståendet förkortar resultatet.
SELECT ROUND(150.75, 0);
GO
Här är resultatet.
151.00
SELECT ROUND(150.75, 0, 1);
GO
Här är resultatet.
150.00