Différence entre numeric, float et decimal dans SQL Server
Source : Stack Overflow [sql-server]
Utilisez les types de données float ou real uniquement si la précision fournie par decimal (jusqu’à 38 chiffres) est insuffisante.
Les types de données numériques approximatifs (voir tableau 3.3) ne stockent pas les valeurs exactes spécifiées pour de nombreux nombres ; ils stockent une approximation extrêmement proche de la valeur. (Technet)
Évitez d’utiliser des colonnes float ou real dans les conditions de recherche de la clause WHERE, en particulier les opérateurs = et <>. Il est préférable de limiter les colonnes float et real aux comparaisons > ou <. (Technet)
Donc en général, choisir Decimal comme type de données est le meilleur choix si :
votre nombre peut y tenir. La précision Decimal est de 10E38 [environ 38 chiffres]
l’espace de stockage réduit (et peut-être la vitesse de calcul) de Float n’est pas important pour vous
un comportement numérique exact est requis, comme dans les applications financières, dans les opérations impliquant des arrondis, ou dans les vérifications d’égalité. (Technet)
Types de données numériques exacts decimal and numeric - MSDN
numeric = decimal (5 à 17 octets)
sera mappé vers Decimal en .NET
les deux ont (18, 0) comme paramètres par défaut (précision, échelle) dans SQL Server
échelle = nombre maximal de chiffres décimaux pouvant être stockés à droite de la virgule décimale.
money (8 octets) et smallmoney (4 octets) sont également des types de données exacts et seront mappés vers Decimal en .NET et ont 4 décimales (MSDN)
Types de données numériques approximatifs float and real - MSDN
real (4 octets)
sera mappé vers Single en .NET
Le synonyme ISO pour real est float(24)
float (8 octets)
sera mappé vers Double en .NET
Tous les types numériques exacts produisent toujours le
(Réponse tronquée)