utiliser le flottant ou réel types de données uniquement si la précision fournie par décimal (jusqu'à 38 chiffres) est insuffisant
-
Les types de données numériques approximatifs (voir tableau 3.3) ne stockent pas les valeurs exactes spécifiées pour beaucoup Nombres; ils stockent un nombre extrêmement proche approximation de la valeur.(Technet)
-
Évitez d'utiliser des colonnes flottantes ou réelles 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 généralement choisir Décimal comme type de données est le meilleur pari si
- votre numéro peut y tenir. Précision décimale est 10E38[~ 38 chiffres]
- un espace de stockage plus petit (et peut-être une 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)
- Exact Types de données numériques décimal et numérique - MSDN
- numérique =décimal (5 à 17 octets)
- sera mappé sur Decimal dans .NET
- les deux ont (18, 0) comme paramètres par défaut (précision, échelle) dans le serveur SQL
- échelle =nombre maximum de chiffres décimaux pouvant être stockés à droite de la virgule.
- money(8 octets) et smallmoney(4 octets) sont également des types de données exacts et seront mappés sur décimal dans .NET et auront 4 points décimaux (MSDN)
- Approximatif Type de données numériques float et real - MSDN
- réel (4 octets)
- sera mappé sur Single dans .NET
- Le synonyme ISO de real est float(24)
- flottant (8 octets)
- sera mappé sur Double dans .NET
- Tous exacts les types numériques produisent toujours le même résultat, quel que soit le type d'architecture de processeur utilisé ou l'ampleur des nombres
- Le paramètre fourni au type de données float définit le nombre de bits utilisés pour stocker la mantisse du nombre à virgule flottante .
- Le type de données numérique approximatif utilise généralement moins de stockage et a une meilleure vitesse (jusqu'à 20 x) et vous devez également tenir compte du moment où ils ont été convertis en .NET
- Quelle est la différence entre Decimal, Float et Double en C#
- Décimale contre double vitesse
- SQL Server - Mappages de types de données .NET (à partir de MSDN)
source principale :Kit de formation auto-rythmée MCTS (examen 70-433) :Développement de bases de données Microsoft® SQL Server® 2008 - Chapitre 3 - Tables, types de données et intégrité déclarative des données - Leçon 1 - Choix des types de données (directives) - Page 93