Aracılığıyla paylaş


float ve real (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Kayan nokta sayısal verileriyle kullanılmak üzere yaklaşık sayı veri türleri. Kayan nokta verileri yaklaşıktır; bu nedenle, veri türü aralığındaki tüm değerler tam olarak temsil edilemez. Gerçek için ISO eş anlamlısı float(24) şeklindedir.

Transact-SQL söz dizimi kuralları

Syntax

float [ (n) ] Burada n , kayan sayının mantisini bilimsel gösteriminde depolamak için kullanılan bit sayısıdır ve bu nedenle duyarlık ve depolama boyutunu dikte eder. n belirtilirse, 1 ile 53 arasında bir değer olmalıdır. Varsayılan n değeri 53'tür.

n değeri Precision Depolama boyutu
1-24 7 hane 4 bayt
25-53 15 hane 8 bayt

Note

SQL Server n değerini iki olası değerden biri olarak değerlendirir. 1<=n<=24 ise, n24 olarak değerlendirilir. 25<=n<=53 ise, n53 olarak değerlendirilir.

SQL Server float[(n)] veri türü, 1 ile 53 arasında tüm n değerleri için ISO standardıyla uyumludur. Çift duyarlık için eş anlamlı float(53)'dir.

Remarks

Veri türü Range Storage
float - 1,79E+308 - -2,23E-308, 0 ve 2,23E-308 - 1,79E+308 n değerine bağlıdır
real - 3,40E + 38 - -1,18E - 38, 0 ve 1,18E - 38 - 3,40E + 38 4 Bayt

Kayan ve gerçek veri türleri yaklaşık veri türleri olarak bilinir. Float ve real değerlerinin davranışı, yaklaşık sayısal veri türlerinde IEEE 754 belirtimini izler. Microsoft Visual C (MSVC) derleyicisinin IEEE 754 standardını nasıl kullandığını anlamak için bkz. IEEE Floating-Point Gösterimi

Yaklaşık sayısal veri türleri, çok sayıda sayı için belirtilen tam değerleri depolamaz; değerin yakın tahminini depolar. Bazı uygulamalarda, belirtilen değer ile depolanan yaklaşık değer arasındaki küçük fark uygun değildir. Ancak diğerleri için fark önemlidir. Kayan ve gerçek veri türlerinin yaklaşık yapısı nedeniyle, tam sayısal davranış gerektiğinde bu veri türlerini kullanmayın. Kesin sayısal değerler gerektiren örnekler finansal veya iş verileri, yuvarlama içeren işlemler veya eşitlik denetimleridir. Böyle durumlarda tamsayı, ondalık, sayısal, para veya küçük veri türlerini kullanın.

WHERE yan tümcesi arama koşullarında, özellikle = ve <> işleçlerinde float veya gerçek sütunlar kullanmaktan kaçının. Kayan ve gerçek sütunları veya > karşılaştırmaları sınırlamak < en iyisidir.

Kayan ve gerçek verileri dönüştürme

Float değerleri herhangi bir tamsayı türüne dönüştürüldüğünde kesilir.

Kayan veya gerçek karakter verilerinden karakter verilerine dönüştürmek istediğinizde, STR dize işlevini kullanmak genellikle CAST( değerinden daha kullanışlıdır. Bunun nedeni, STR() öğesinin biçimlendirme üzerinde daha fazla denetime olanak tanır. Daha fazla bilgi için bkz . STR (Transact-SQL) ve İşlevler (Transact-SQL).

SQL Server 2016'nın (13.x) öncesinde , kayan değerlerin ondalık veya sayısala dönüştürülmesi yalnızca 17 basamaklı duyarlık değerleriyle sınırlıdır. 5E-18'den küçük tüm kayan değerler (5E-18 bilimsel gösterimi veya 0,0000000000000000000005 ondalık gösterimi kullanılarak ayarlandığında) 0'a yuvarlanır. Bu artık SQL Server 2016 (13.x) itibarıyla bir kısıtlama değildir.