Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Számértéket ad vissza, amelyet a megadott hosszúságra vagy pontosságra kerekítve.
Transact-SQL szintaxis konvenciók
Szemantika
ROUND ( numeric_expression , length [ , function ] )
Arguments
numeric_expression
A pontos numerikus vagy közelítő numerikus adattípus kategóriájának kifejezése .
length
Az a pontosság, amellyel numeric_expression le kell kerekíteni. A hosszúságnaktinyint, smallint vagy int típusú kifejezésnek kell lennie. Ha a hossz pozitív szám, akkor numeric_expression a hosszúság által meghatározott tizedes pozíciók számára kerekítik. Ha a hossz negatív szám, numeric_expression a tizedespont bal oldalán kerekítve van a hosszúság szerint.
funkció
Milyen típusú műveletet kell végrehajtani.
A funkciónaktinyint, smallintvagy intnek kell lennie. Ha a függvény kihagyott vagy (alapértelmezett) értéke 0 van, numeric_expression kerekítik. Ha egy más értéket jelölnek meg, 0akkor numeric_expression levágják.
Visszatérési típusok
A következő adattípusokat adja vissza.
| Kifejezés eredménye | Visszatérési típus |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Tizedes és numerikus kategória (p, s) | tizedes (p, s) |
| Pénz és Kispénz kategóriába | pénz |
| Float és reaal kategória | float |
Megjegyzések
ROUNDmindig értéket ad vissza. Ha a hossz negatív és nagyobb, mint a tizedespont előtti számjegyek száma,ROUNDakkor a -t eredményezi.0Example Result ROUND(748.58, -4)0 ROUNDKerekített numeric_expression ad, függetlenül az adattípustól, ha a hossz negatív szám.Példák Result ROUND(748.58, -1)750.00 ROUND(748.58, -2)700.00 ROUND(748.58, -3)Aritmetikai túlcsordulást eredményez, mert a 748,58 alapértelmezett decim(5, 2)-re változik, ami nem tud visszaadni 1000.00.Négy számjegyre kerekítés esetén változtasd meg a bemenet adattípusát. Például:
SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);Itt van az eredmények összessége.
1000.00ROUNDmegszakítja a döntetlent azzal, hogy a nulláról félig kerekíti (más néven kereskedelmi kerekítés).Példák Result ROUND(1.15, 1)1.2 ROUND(-1.15, 1)-1.2
Példák
A. Használj ROUND-ot és becslést
Az alábbi példa két kifejezést mutat be, amelyek segítségével ROUNDaz utolsó számjegy mindig becslés.
SELECT ROUND(123.9994, 3),
ROUND(123.9995, 3);
GO
Itt van az eredmények összessége.
----------- -----------
123.9990 124.0000
B. Használj ROUND és kerekítő közelítéseket
A következő példa a kerekítést és közelítéseket mutatja.
SELECT ROUND(123.4545, 2),
ROUND(123.45, -2);
Itt van az eredmények összessége.
---------- ----------
123.4500 100.00
C. Használd a ROUND gombot a csorkáláshoz
A következő példa két SELECT állítást használ a kerekítés és a csaprítás közötti különbség bemutatására. Az első állítás kerekíti az eredményt. A második állítás lerövidíti az eredményt.
SELECT ROUND(150.75, 0);
GO
Itt van az eredmények összessége.
151.00
SELECT ROUND(150.75, 0, 1);
GO
Itt van az eredmények összessége.
150.00