Share via


Types de données numériques

Mise à jour : novembre 2007

Visual Basic met à votre disposition plusieurs types de données numériques permettant de gérer les nombres dans diverses représentations. Les types intégraux ne représentent que les nombres entiers (positifs, négatifs et zéro), tandis que les types non intégraux représentent les nombres composés d'une partie entière et d'une partie fractionnaire.

Pour examiner un tableau présentant une comparaison côte à côte des types de données de Visual Basic, consultez Liste des types de données (Visual Basic).

Types numériques intégraux

Les types de données intégraux sont ceux qui ne représentent que des nombres sans partie fractionnaire.

Les types de données intégraux signés sont SByte, type de données (Visual Basic) (8 bits), Short, type de données (Visual Basic) (16 bits), Integer, type de données (Visual Basic) (32 bits) et Long, type de données (Visual Basic) (64 bits). Si une variable enregistre toujours des nombres entiers plutôt que des nombres fractionnaires, déclarez-la avec l'un de ces types.

Les types intégraux non signés sont les types de données Byte (Visual Basic) (8 bits), UShort (Visual Basic) (16 bits), UInteger (32 bits) et ULong (Visual Basic) (64 bits). Si une variable contient des données binaires ou des données de nature inconnue, déclarez-la avec l'un de ces types.

Performance

Les opérations arithmétiques sont plus rapides avec les types intégraux qu'avec les autres types de données. Elles sont plus rapides avec les types Integer et UInteger dans Visual Basic.

Grands entiers

Si vous devez placer un entier plus grand que le type de données Integer ne peut contenir, vous pouvez utiliser à la place le type de données Long. Les variables Long peuvent contenir des nombres compris entre -9 223 372 036 854 775 808 et 9 223 372 036 854 775 807. Les opérations avec Long sont légèrement plus lentes qu'avec Integer.

Si vous avez besoin de valeurs encore plus grandes, vous pouvez utiliser le Decimal, type de données (Visual Basic). Vous pouvez placer des nombres compris entre -79 228 162 514 264 337 593 543 950 335 et 79 228 162 514 264 337 593 543 950 335 dans une variable Decimal si vous n'utilisez pas de décimales. Toutefois, les opérations avec les nombres Decimal sont considérablement plus lentes qu'avec tout autre type de données numériques.

Petits entiers

Si vous n'avez pas besoin de la plage complète du type de données Integer, vous pouvez utiliser le type de données Short, qui peut contenir des entiers compris entre -32 768 et 32 767. Pour la plus petite plage d'entiers, le type de données SByte contient des entiers compris entre -128 et 127. Si vous avez un grand nombre de variables qui contiennent de petits entiers, le Common Langage Runtime peut quelquefois stocker plus efficacement vos variables Short et SByte et réduire la consommation de mémoire. Toutefois, les opérations avec Short et SByte sont un peu plus lentes qu'avec Integer.

Entiers non signés

Si vous savez que votre variable ne contiendra jamais de nombre négatif, vous pouvez utiliser les types non signésByte, UShort, UInteger et ULong. Chacun de ces types de données peut contenir un entier positif deux fois plus grand que son type signé correspondant (SByte, Short, Integer et Long). En termes de performances, chaque type non signé est exactement aussi efficace que son type signé correspondant. En particulier, UInteger partage avec Integer la distinction d'être le plus efficace de tous les types de données numériques élémentaires.

Types numériques non intégraux

Les types de données non intégraux représentent des nombres composés d'une partie entière et d'une partie fractionnaire.

Les types de données numériques non intégraux sont Decimal (128 bits virgule fixe), Single, type de données (Visual Basic) (32 bits virgule flottante) et Double, type de données (Visual Basic) (64 bits virgule flottante). Tous ces types sont signés. Si une variable peut contenir une fraction, déclarez-la avec l'un de ces types.

Decimal n'est pas un type de données à virgule flottante. Les nombres Decimal ont une valeur d'entier binaire et un facteur d'échelle d'entier qui spécifie quelle partie de la valeur est une fraction décimale.

Les nombres à virgule flottante (Single et Double) présentent des plages plus larges que les nombres de type Decimal, mais ils peuvent être sujets aux erreurs d'arrondi. Les types à virgule flottante prennent en charge un nombre de chiffres significatifs inférieur à celui du type Decimal, mais ils peuvent représenter des valeurs d'amplitude supérieure.

Les valeurs de nombres non intégraux peuvent être exprimées comme mmmEeee, où mmm est la mantisse (les bits significatifs) et eee est l'exposant (une puissance de 10). Les valeurs positives les plus élevées des types non intégraux sont 7,9228162514264337593543950335E+28 pour Decimal, 3,4028235E+38 pour Single et 1,79769313486231570E+308 pour Double.

Performance

Double est le plus efficace des types de données fractionnaires, car les processeurs des plates-formes actuelles exécutent les opérations en virgule flottante en double précision. Toutefois, les opérations avec Double ne sont pas aussi rapides qu'avec les types intégraux, tels que Integer.

Petites amplitudes

Pour les nombres avec la plus petite amplitude possible (le plus proche de 0), les variables Double peuvent contenir des nombres aussi petits que -4,94065645841246544E-324 pour les valeurs négatives et 4,94065645841246544E-324 pour les valeurs positives.

Petits nombres fractionnaires

Si vous n'avez pas besoin de la plage complète du type de données Double, vous pouvez utiliser le type de données Single, qui peut contenir des nombres à virgule flottante compris entre -3,4028235E+38 et 3,4028235E+38. Les plus petites amplitudes pour les variables Single sont -1,401298E-45 pour les valeurs négatives et 1,401298E-45 pour les valeurs positives. Si vous avez un grand nombre de variables qui contiennent de petits nombres à virgule flottante, le Common Language Runtime peut quelquefois stocker plus efficacement vos variables Single et réduire la consommation de mémoire.

Voir aussi

Tâches

Dépannage des types de données

Comment : stocker des entiers dans une variable

Comment : stocker des fractions dans une variable

Comment : stocker le plus grand nombre possible dans une variable

Comment : optimiser le stockage d'entiers positifs avec les types non signés

Comment : appeler une fonction Windows qui possède des types non signés

Comment : stocker les chiffres les plus significatifs dans une variable

Comment : stocker des valeurs monétaires dans une variable

Concepts

Types de données caractère

Types de données divers

Autres ressources

Types de données élémentaires