Les types de données float et real sont des types de données approximatifs. Le comportement de float et de real suit la spécification IEEE 754 sur les types de données numériques approximatifs.
Les types de données numériques approximatifs ne stockent pas les valeurs exactes spécifiées pour de nombreux chiffres mais une approximation extrêmement précise de la valeur. Pour de nombreuses applications, l'infime différence qui existe entre la valeur spécifiée et l'approximation stockée n'est pas perceptible, sauf occasionellement. Les types de données float et real présentant un caractère approximatif, ne les utilisez pas lorsqu'un comportement numérique exact est requis, comme dans les applications financières, les opérations comprenant des arrondis ou les vérifications d'égalité. Utilisez plutôt les types de données integer, decimal, money ou smallmoney.
Évitez d'utiliser les colonnes float ou real dans les conditions de recherche de la clause WHERE, plus particulièrement les opérateurs = et <>. L'idéal est de limiter les colonnes float et real aux signes de comparaison > ou <.
La spécification IEEE 754 fournit quatre méthodes d'arrondi : arrondi à la valeur la plus proche, à la valeur supérieure, à la valeur inférieure et à zéro. Microsoft SQL Server 2005 utilise l'arrondi à la valeur supérieure. Toutes garantes de la précision, ces méthodes peuvent néanmoins créer des valeurs en virgule flottante légèrement différentes. Comme la représentation binaire d'un nombre en virgule flottante peut utiliser un des nombreux schémas d'arrondi autorisés, il est impossible de quantifier de manière fiable une valeur en virgule flottante.
Partager