Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est la différence entre Float et Numeric/Decimal dans SQL Server - Tutoriel SQL Server / T-SQL Partie 33

Flottant et Réel sont des types de données approximatifs. Les types de données Float et Real ne stockent pas de valeurs exactes pour de nombreux nombres. La valeur peut être extrêmement fermée.

Numérique/Décimal sont des types de données à précision fixe. Il stockera les valeurs avec une précision exacte et mettra à l'échelle ce que vous avez défini.

Si vous avez besoin de stocker des données où une petite différence n'a pas d'importance, vous pouvez utiliser Float ou Real. Mais si vous avez besoin de données exactes, par exemple pour une application financière. Vous devez utiliser le type de données numérique/décimal ou monétaire pour enregistrer des données exactes, car une petite différence peut avoir un impact sur les calculs.

Exemple :


Déclarons deux variables et enregistrons les mêmes données et voyons ce qui arrive à la sortie en raison de leur type de données.
DECLARE @DecimalVariable DECIMAL(8, 2)SET @DecimalVariable =213429.95DECLARE @FloatVariable FLOAT (24)SET @FloatVariable =213429.95SELECT @DecimalVariable AS DecimalVariable ,@FloatVariable AS FloatVariable
 
 
 
 Différence entre flottant et décimal/numérique dans SQL Server - Tutoriel T SQL 
 Comme nous pouvons le voir dans l'instantané ci-dessus, Decimal a stocké et affiché des valeurs exactes et là où nous avons enregistré des valeurs dans un flotteur, il a arrondi les valeurs. 

Comme les types de données float/real sont des types de données approximatifs, évitez de les utiliser en utilisant la clause Where spécialement avec les opérateurs =ou <>.