2009-11-19 3 views

Répondre

2

numérique est une décimale (base- 10) type de données à virgule fixe; float est un type de données à virgule flottante binaire (base-2).

Une valeur numérique [18,10] définit une décimale avec précision (nombre total maximal de chiffres décimaux pouvant être stockés, à la fois à gauche et à droite de la virgule décimale) 18 et échelle (nombre maximal de chiffres décimaux qui peut être stocké à la droite de la virgule décimale) 10. Il consomme 9 octets de stockage à 8 octets par défaut d'un flotteur. Il s'agit d'un starting point for more reading.

+0

Numérique est un type à virgule fixe et non un type à virgule flottante. –

+0

@Thom - vous avez raison. Merci. –

4

FLOAT est conforme à IEEE 754 et se rapproche de la représentation décimale.

NUMERIC est exacte en représentation décimale (jusqu'à la précision déclarée).

SELECT CAST(PI() AS FLOAT), 
     CAST(PI() AS NUMERIC(20, 18)), 
     CAST(PI() AS NUMERIC(5, 3)) 


---------------------- --------------------------------------- --------------------------------------- 
3,14159265358979  3.141592653589793100     3.142 
+1

La précision n'est approximative que lorsqu'elle est mesurée à la décimale. C'est exact en bits. –

+0

donc pour $, le flotteur est bien non? – mrblah

+0

@mrblah si vos flotteurs sont petits. –

0

float est defined comme un nombre binaire à virgule flottante.

Il est beaucoup plus efficace de travailler avec les ordinateurs binaires que les nombres décimaux à virgule flottante (en fait, la plupart des opérations mathématiques sur les flottants sont implémentées dans le matériel) et peuvent être très précises. Cependant, étant donné que la précision est mesurée en bits, et non en décimales, float s ne sont pas idéales pour une utilisation avec des algorithmes qui dépendent de la représentation décimale d'un nombre (par exemple des applications financières).

Quelques bonnes références sont Wikipedia's page on IEEE 754 (la norme à virgule flottante) et l'article ACM de David Goldberg What Every Computer Scientist Should Know About Floating-Point Arithmetic.

Questions connexes