Sdílet prostřednictvím


ROUND (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrací číselnou hodnotu, zaokrouhlenou na zadanou délku nebo přesnost.

Transact-SQL konvence syntaxe

Syntaxe

ROUND ( numeric_expression , length [ , function ] )

Arguments

numeric_expression

Výraz pro přesnou numerickou nebo aproximativní číselnou datovou kategorii.

length

Přesnost, na kterou numeric_expression má být zaokrouhlena. Délka musí být výrazem typu tinyint, smallint nebo int. Pokud je délka kladné číslo, numeric_expression se zaokrouhluje na počet desetinných pozic určených délkou. Když je délka záporné číslo, numeric_expression je zaokrouhleno na levé straně desetinné čárky, jak je určeno délkou.

funkce

Typ operace, kterou provádět. funkce musí být tinyint, smallint nebo int. Když je funkce vynechána nebo má hodnotu ( 0 výchozí), numeric_expression je zaokrouhlena. Když je uvedena jiná hodnota 0 , numeric_expression se zkrátí.

Návratové typy

Vrátí následující datové typy.

Výsledek výrazu Návratový typ
tinyint int
smallint int
int int
bigint bigint
desetinná a číselná kategorie (p, s) desetinné (p, s)
Kategorie peněz a drobných peněz peníze
Floata reálná kategorie float

Poznámky

  • ROUND vždy vrátí hodnotu. Pokud je délka záporná a větší než počet číslic před desetinnou čárkou, ROUND vrátí .0

    Example Result
    ROUND(748.58, -4) 0
  • ROUND vrací zaokrouhlený numeric_expression, bez ohledu na typ dat, pokud délka je záporné číslo.

    Examples Result
    ROUND(748.58, -1) 750.00
    ROUND(748.58, -2) 700,00
    ROUND(748.58, -3) Výsledkem je aritmetický přetečení, protože 748,58 se výchozí nastaví na desetinné(5, 2), což nemůže vrátit 1000.00.
  • Pro zaokrouhlení na čtyři číslice změňte typ dat vstupu. Například:

    SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);
    

    Tady je soubor výsledků.

    1000.00
    
  • ROUND Rozděluje remízy zaokrouhlováním od nuly na polovinu (také známé jako komerční zaokrouhlování).

    Examples Result
    ROUND(1.15, 1) 1.2
    ROUND(-1.15, 1) -1.2

Examples

A. Použijte ROUND a odhady

Následující příklad ukazuje dva výrazy, které ukazují, že použitím ROUNDje poslední číslice vždy odhadem.

SELECT ROUND(123.9994, 3),
       ROUND(123.9995, 3);
GO

Tady je soubor výsledků.

----------- -----------
123.9990    124.0000

B. Použijte ROUND a zaokrouhlovací aproximace

Následující příklad ukazuje zaokrouhlování a aproximace.

SELECT ROUND(123.4545, 2),
       ROUND(123.45, -2);

Tady je soubor výsledků.

----------  ----------
123.4500    100.00

C. Použijte ROUND pro zkrácení

Následující příklad používá dvě SELECT tvrzení k demonstraci rozdílu mezi zaokrouhlováním a okrájením. První tvrzení zaokrouhluje výsledek. Druhý výrok výsledek zkracuje.

SELECT ROUND(150.75, 0);
GO

Tady je soubor výsledků.

151.00
SELECT ROUND(150.75, 0, 1);
GO

Tady je soubor výsledků.

150.00