Megosztás a következőn keresztül:


KÖR (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-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

  • ROUND mindig értéket ad vissza. Ha a hossz negatív és nagyobb, mint a tizedespont előtti számjegyek száma, ROUND akkor a -t eredményezi.0

    Example Result
    ROUND(748.58, -4) 0
  • ROUND Kerekí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.00
    
  • ROUND megszakí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