SQL har tre funktioner, der kan afrunde værdier til et bestemt antal decimaler . Du kan bruge disse funktioner til at løse en bred vifte af database -relaterede problemer , der spænder fra at komme af fraktioner af øre på finansielle transaktioner for at regulere datainput fra flere videnskabelige instrumenter . Hvis du er ny til SQL, kan dens afrunding funktioner virke lidt mærkeligt, og kan forårsage et par tilpasningsproblemer. Konventionel Afrunding
SQL s " ROUND ()" funktion tager en eksisterende værdi og runder det til det angivne antal decimaler. Formatet er som følger : Hej
AFRUND ( [ value] , [n ], [ 1] ) )
her, " [ value] " er en decimal værdi , og " [ n] "er antallet af cifre bør værdien afrundes til . Konventionelle afrunding runder værdier på 0,5 eller større op , og værdier .49 og lavere ned . Sætte værdien til "0" runder til heltal værdier sætte værdien til "-1" runder til det nærmeste multiplum af 10. . Den " ROUND ()" funktionen tredje parameter , "[1] , " afkorter tal til det angivne antal decimaler , hvis indstilles til alle nul værdi. En væsentlig kilde til uventede afrundingsregler problemer kommer , når , på grund af en skrivefejl , tredje parameter indstilles , og antallet afkorter stedet runder.
Gulv og loft
SQL bruger " FLOOR ()" funktionen til at tvinge værdier for at runde ned til den nærmeste værdi , og " LOFT ()" funktionen til at runde op til nærmeste værdi. Begge disse funktioner returnerer heltalsværdier , selv ved hjælp af et float datatype med et antal decimaler angivne steder returnerer en værdi med nuller efter decimal
Anbefalede datatyper
< . br >
sandsynlige årsag til afrundingsfejl i SQL stammer fra at bruge en uventet datatype for den numeriske udtryk i " ROUND ()" funktionen , eller fra at bruge "gulv ( )" eller " LOFT ( ) " og forventer at få en decimal datatype , snarere end et heltal . Hvis din SQL -funktionen giver dig uventede afrunding resultater , sørg for, at de " CAST ()" funktionen , der er angivelse af det antal har datatypen sat til " integer ", " decimal ", "penge " eller " smallmoney . " The " decimal " datatype er begrænset til kun 38 cifre i alt , hvilket er en begrænsning, at få mennesker uden for det videnskabelige samfund løber ind .
fotos Andre datatyper < br >
To datatyper returnerer numeriske værdier , der kan forårsage problemer med " ROUND ()" funktionen . Disse er "rigtige " og " float " nummer typer i SQL , der anvendes til at registrere meget små fraktioner, som bliver rundet op af de fleste sorter af SQL i allersidste decimal i datatype angivne nogle SQL implementeringer rundt til nul , runde ned eller runde konventionelt. Når du har data bliver fodret ind i en SQL-database , der kunne bruge den "rigtige" eller " float " datatyper , bruge " CAST ( )" eller "Konverter ()" funktioner til at konvertere dem til det " decimal " datatype.