float et real (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Types de données approximatives à utiliser avec des données numériques à virgule flottante. Les données à virgule flottante sont approximatives ; il n'est donc pas possible de représenter précisément toutes les valeurs de ce type de données. Le synonyme ISO de real est float(24) .

Conventions de la syntaxe Transact-SQL

Syntaxe

float [ (n) ] Où n est le nombre de bits utilisés pour stocker la mantisse du nombre de type float en notation scientifique et indique par conséquent le niveau de précision et la taille de stockage. Si n est spécifié, sa valeur doit être comprise entre 1 et 53. La valeur par défaut de n est 53.

Valeur n Precision Taille de stockage
1-24 7 chiffres 4 octets
25-53 15 chiffres 8 octets

Notes

SQL Server considère n comme l’une des deux valeurs possibles. Si 1<=n<=24, n est considéré comme égal à 24. Si 25<=n<=53, n est considéré comme égal à 53.

Le type de données SQL Serverfloat [ (n) ] est conforme à la norme ISO pour toutes les valeurs de n comprises entre 1 et 53. Le synonyme de double precision est float(53) .

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez Versions antérieures de la documentation.

Notes

Type de données Plage Stockage
float - 1,79E+308 à -2,23E-308, 0 et 2,23E-308 à 1,79E+308 Dépend de la valeur de n
real - 3,40E + 38 à -1,18E - 38, 0 et 1,18E - 38 à 3,40E + 38 Quatre octets

Conversion de données float et real

Les valeurs de float sont tronquées quand elles sont converties en un type entier.

Si vous souhaitez effectuer une conversion de float ou real en données caractères, la fonction de chaîne STR constitue généralement un meilleur choix que CAST( ), car STR permet un plus grand contrôle sur le format. Pour plus d’informations, consultez STR (Transact-SQL) et Fonctions (Transact-SQL).

Dans les versions antérieures à SQL Server 2016 (13.x), la conversion des valeurs float en valeurs decimal ou numeric est limitée à des valeurs d’une précision de 17 chiffres uniquement. Toutes les valeurs flottantes inférieures à 5E-18 (quand elles sont définies avec la notation scientifique 5E-18 ou la notation décimale 0,000000000000000005) sont arrondies à 0. Cette limitation n’existe plus dans SQL Server 2016 (13.x).

Voir aussi

ALTER TABLE (Transact-SQL)
CAST et CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Conversion de types de données (Moteur de base de données)
Types de données (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
SET @local_variable (Transact-SQL)