Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Förhandsversion av Microsoft Fabric
Ungefärliga datatyper för användning med numeriska flyttalsdata. Flyttalsdata är ungefärliga. Därför kan inte alla värden i datatypsintervallet representeras exakt. ISO-synonymen för verkliga är float(24).
Transact-SQL syntaxkonventioner
Syntax
float [ (n) ] Där n är antalet bitar som används för att lagra mantissan för flytnumret i vetenskaplig notation och därför dikterar precisionen och lagringsstorleken. Om n anges måste det vara ett värde mellan 1 och 53. Standardvärdet för n är 53.
| n value | Precision | Storage size |
|---|---|---|
| 1-24 | 7 digits | 4 bytes |
| 25-53 | 15 digits | 8 bytes |
Note
SQL Server behandlar n som ett av två möjliga värden. Om 1<=n<=24 behandlas n som 24. Om 25<=n<=53 behandlas n som 53.
Datatypen SQL Server float[(n)] uppfyller ISO-standarden för alla värden för n från 1 till 53. Synonymen för dubbel precision är float(53).
Remarks
| Data type | Range | Storage |
|---|---|---|
| float | - 1.79E+308 till -2.23E-308, 0 och 2.23E-308 till 1.79E+308 | Beror på värdet för n |
| real | - 3.40E + 38 till -1.18E - 38, 0 och 1.18E - 38 till 3.40E + 38 | 4 Bytes |
Flyttal och verkliga datatyper kallas ungefärliga datatyper. Beteendet för float och real följer IEEE 754-specifikationen för ungefärliga numeriska datatyper. Information om hur Microsoft Visual C-kompilatorn (MSVC) använder IEEE 754-standarden finns i IEEE Floating-Point Representation
Ungefärliga numeriska datatyper lagrar inte de exakta värden som anges för många tal. de lagrar en nära uppskattning av värdet. För vissa program är den lilla skillnaden mellan det angivna värdet och den lagrade uppskattningen inte relevant. För andra är skillnaden dock viktig. På grund av den ungefärliga typen av flyttal och verkliga datatyper ska du inte använda dessa datatyper när exakt numeriskt beteende krävs. Exempel som kräver exakta numeriska värden är finansiella data eller affärsdata, åtgärder som omfattar avrundning eller likhetskontroller. I dessa fall använder du datatyperna heltal, decimaler, numeriska, pengar eller smallmoney.
Undvik att använda flyttal eller verkliga kolumner i WHERE-satsens sökvillkor, särskilt operatorerna = och <> . Det är bäst att begränsa flyttal och verkliga kolumner till > eller < jämförelser.
Konvertera flyttal och verkliga data
Värden för flyttal trunkeras när de konverteras till alla heltalstyper.
När du vill konvertera från flyttal eller verklig till teckendata är det vanligtvis mer användbart att använda STR-strängfunktionen än CAST( ). Anledningen är att STR() ger mer kontroll över formateringen. Mer information finns i STR (Transact-SQL) och Functions (Transact-SQL).
Före SQL Server 2016 (13.x) begränsas konverteringen av flyttalsvärden till decimaler eller numeriska värden endast till värden med precision 17 siffror. Ett flyttalvärde som är mindre än 5E-18 (när det anges med antingen den vetenskapliga notationen 5E-18 eller decimaltecknet 0,0000000000000005) avrundar ned till 0. Detta är inte längre en begränsning från och med SQL Server 2016 (13.x).