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


lebegőpontos és valós (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

Lebegőpontos numerikus adatokkal használható hozzávetőleges szám adattípusok. A lebegőpontos adatok hozzávetőlegesek; ezért az adattípustartományban nem minden érték jeleníthető meg pontosan. A valós ISO-szinonimája a float(24).

Transact-SQL szintaxis konvenciók

Syntax

float [ (n) ] Ahol n az úszószám mantissa tudományos jelölésben való tárolására használt bitek száma, és ezért meghatározza a pontosságot és a tárolási méretet. Ha n van megadva, annak 1 és 53 közötti értéknek kell lennie. Az n alapértelmezett értéke 53.

n érték Precision Tárterület mérete
1-24 7 számjegy 4 bájt
25-53 15 számjegy 8 bájt

Note

Az SQL Server az n-t két lehetséges érték egyikeként kezeli. Ha 1<=n<=24, az n24-ként lesz kezelve. Ha 25<=n<=53, akkor az n53-as.

Az SQL Server lebegőpontos[(n)] adattípusa megfelel az 1 és 53közötti n értékekre vonatkozó ISO-szabványnak. A kettős pontosság szinonimája a float(53).

Remarks

Adattípus Range Storage
float - 1.79E+308–-2.23E-308, 0 és 2.23E-308–1.79E+308 Az n értékétől függ
real - 3,40E + 38-1,18E - 38, 0 és 1,18E - 38-3,40E + 38 4 bájt

A lebegőpontos és a valós adattípusokat hozzávetőleges adattípusoknak nevezzük. A lebegőpontos és valós viselkedés az IEEE 754 specifikációját követi közelítő numerikus adattípusokon. Ha tudni szeretné, hogy a Microsoft Visual C (MSVC) fordító hogyan használja az IEEE 754 szabványt, tekintse meg az IEEE Floating-Point-ábrázolást

A közelítő numerikus adattípusok nem tárolják a számos számhoz megadott pontos értékeket; az érték közel közelítését tárolják. Egyes alkalmazások esetében a megadott érték és a tárolt közelítés közötti apró különbség nem releváns. Mások számára azonban a különbség fontos. A lebegőpontos és valós adattípusok hozzávetőleges jellege miatt ne használja ezeket az adattípusokat, ha pontos numerikus viselkedésre van szükség. A pontos numerikus értékeket igénylő példák például a pénzügyi vagy üzleti adatok, a kerekítéssel járó műveletek vagy az egyenlőségi ellenőrzések. Ezekben az esetekben használja az egész számot, decimális, numerikus, pénz vagy kis méretű adattípust.

Ne használjon lebegőpontos vagy valós oszlopokat a WHERE záradék keresési feltételeiben, különösen az = és <> operátorok esetén. A legjobb, ha a lebegőpontos és a valós oszlopokat az összehasonlításokra vagy összehasonlításokra >< korlátozza.

Lebegőpontos és valós adatok konvertálása

A lebegőpontos értékek csonkolva lesznek, amikor bármilyen egész típusúra konvertálják őket.

Ha lebegőpontos vagy valós adatokból karakteres adatokat szeretne konvertálni, az STR sztringfüggvény használata általában hasznosabb, mint a CAST( ). Ennek az az oka, hogy az STR() lehetővé teszi a formázás szabályozását. További információ: STR (Transact-SQL) és Functions (Transact-SQL).

Az SQL Server 2016 (13.x) előtt a lebegőpontos értékek decimális vagy numerikus értékké alakítása csak 17 számjegy pontosságú értékekre korlátozódik. Az 5E-18-nál kisebb lebegőpontos értékek (ha az 5E-18 tudományos jelölését vagy a 0,0000000000000 tizedesjegyet használják) 0-ra kerekül. Ez már nem az SQL Server 2016 (13.x) korlátozása.