Delen via


RONDE (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft een numerieke waarde terug, afgerond op de opgegeven lengte of precisie.

Transact-SQL syntaxis-conventies

Syntaxis

ROUND ( numeric_expression , length [ , function ] )

Arguments

numeric_expression

Een uitdrukking van de exacte numerieke of benaderende numerieke datatypecategorie.

length

De precisie waarmee numeric_expression afgerond moet worden. lengte moet een uitdrukking zijn van het type tinyint, smallint of int. Wanneer lengte een positief getal is, wordt numeric_expression afgerond op het aantal decimale posities dat door lengte is gespecificeerd. Wanneer lengte een negatief getal is, wordt numeric_expression afgerond aan de linkerkant van het decimale punt, zoals aangegeven door lengte.

functie

Het soort operatie dat uitgevoerd moet worden. Functie moet Tinyint, Smallint of Int. Wanneer de functie wordt weggelaten of een waarde van 0 (standaard) heeft, wordt numeric_expression afgerond. Wanneer een andere waarde dan 0 wordt gespecificeerd, wordt numeric_expression afgekapt.

Retourtypen

Geeft de volgende datatypes terug.

Expressieresultaat Resultaattype
tinyint int
smallint int
int int
bigint bigint
Decimale en numerieke categorie (P, S) Decimaal(P, S)
Geld- en kleingeldcategorie geld
float en reële categorie float

Opmerkingen

  • ROUND Geeft altijd een waarde terug. Als de lengte negatief is en groter dan het aantal cijfers vóór het decimale punt, ROUND geeft dit .0

    Example Resultaat
    ROUND(748.58, -4) 0
  • ROUND geeft een afgerond numeric_expression terug, ongeacht het datatype, wanneer de lengte een negatief getal is.

    Voorbeelden Resultaat
    ROUND(748.58, -1) 750,00
    ROUND(748.58, -2) 700.00
    ROUND(748.58, -3) Resulteert in een rekenkundige overloop, omdat 748,58 standaard naar decimaal(5, 2) gaat, wat niet kan teruggeven 1000.00.
  • Om af te ronden tot vier cijfers, verander je het datatype van de invoer. Voorbeeld:

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

    Hier is het resultatenoverzicht.

    1000.00
    
  • ROUND Breekt gelijke stand door de helft van nul af te ronden (ook bekend als commerciële afronding).

    Voorbeelden Resultaat
    ROUND(1.15, 1) 1.2
    ROUND(-1.15, 1) -1.2

Voorbeelden

Eén. Gebruik ROUND en schattingen

Het volgende voorbeeld toont twee uitdrukkingen die aantonen door te gebruiken ROUND, het laatste cijfer is altijd een schatting.

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

Hier is het resultatenoverzicht.

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

B. Gebruik ROUND- en afrondingsbenaderingen

Het volgende voorbeeld toont afronding en benaderingen.

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

Hier is het resultatenoverzicht.

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

C. Gebruik ROUND om te truncten

Het volgende voorbeeld gebruikt twee SELECT statements om het verschil tussen afronding en afkap aan te tonen. De eerste uitspraak rondt het resultaat af. De tweede uitspraak kortte het resultaat af.

SELECT ROUND(150.75, 0);
GO

Hier is het resultatenoverzicht.

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

Hier is het resultatenoverzicht.

150.00