Partager via


Types de données numériques (Visual Basic)

Visual Basic fournit plusieurs types de données numériques pour la gestion des nombres dans différentes représentations. types intégraux représentent uniquement des nombres entiers (positifs, négatifs et zéro), et types non intégrés représentent des nombres avec des parties entières et fractionnaires.

Pour obtenir un tableau montrant une comparaison côte à côte des types de données Visual Basic, consultez types de données.

Types numériques intégraux

types de données intégraux sont ceux qui représentent uniquement des nombres sans parties fractionnaires.

Les types de données intégral signés sont type de données SByte (8 bits), type de données court (16 bits), type de données entier (32 bits) et type de données long (64 bits). Si une variable stocke toujours des entiers plutôt que des nombres fractionnaires, déclarez-la comme l’un de ces types.

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

Performances

Les opérations arithmétiques sont plus rapides avec les types intégraux qu’avec d’autres types de données. Ils sont les plus rapides avec les types Integer et UInteger en Visual Basic.

Entiers volumineux

Si vous devez contenir un entier supérieur au type de données Integer peut contenir, vous pouvez utiliser le type de données Long à la place. Long variables 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 type de données décimal. Vous pouvez contenir des nombres compris entre -79 228 162 514 264 337 593 543 950 335 à 79 000 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 des Decimalnombres sont beaucoup plus lentes qu’avec n’importe quel autre type de données numérique.

Entiers petits

Si vous n’avez pas besoin de la plage complète du Integertype de données, 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 SBytetype de données contient des entiers compris entre -128 et 127. Si vous avez un très grand nombre de variables qui contiennent de petits entiers, le Common Language Runtime peut parfois stocker vos variables Short et SByte plus efficacement et économiser la consommation de mémoire. Toutefois, les opérations avec Short et SByte sont un peu plus lentes que avec Integer.

Entiers non signés

Si vous savez que votre variable n’a jamais besoin de contenir un nombre négatif, vous pouvez utiliser les types non signésByte, UShort, UIntegeret ULong. Chacun de ces types de données peut contenir un entier positif deux fois plus volumineux que son type signé correspondant (SByte, Short, Integeret Long). En termes de performances, chaque type non signé est exactement aussi efficace que son type signé correspondant. En particulier, UInteger partages 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

types de données non intégraux sont ceux qui représentent des nombres avec des parties entières et fractionnaires.

Les types de données numériques non intégré sont Decimal (point fixe 128 bits), type de données unique (virgule flottante 32 bits) et double type de données (virgule flottante 64 bits). Ils sont tous des types signés. Si une variable peut contenir une fraction, déclarez-la comme l’un de ces types.

Decimal n’est pas un type de données à virgule flottante. Decimal nombres ont une valeur entière binaire et un facteur de mise à l’échelle d’entier qui spécifie la partie de la valeur est une fraction décimale.

Vous pouvez utiliser des Decimal variables pour les valeurs monétaires. L’avantage est la précision des valeurs. Le Doubletype de données est plus rapide et nécessite moins de mémoire, mais il est soumis à des erreurs d’arrondi. Le Decimaltype de données conserve la précision complète à 28 décimales.

Les nombres à virgule flottante (Single et Double) ont des plages supérieures à Decimal nombres, mais peuvent être soumis à des erreurs d’arrondi. Les types à virgule flottante prennent en charge moins de chiffres significatifs que Decimal , mais peuvent représenter des valeurs de plus grande ampleur.

Les valeurs de nombre non intégré peuvent être exprimées en mmmEeee, dans laquelle mmm est la mantissa (les chiffres 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 Singleet 1.79769313486231570E+308 pour Double.

Performances

Double est le plus efficace des types de données fractionnaires, car les processeurs sur les plateformes actuelles effectuent des opérations à virgule flottante en double précision. Toutefois, les opérations avec Double ne sont pas aussi rapides que les types intégraux tels que Integer.

Petites grandeurs

Pour les nombres ayant la plus petite magnitude possible (plus proche de 0), Double variables 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 fractionnels

Si vous n’avez pas besoin de la Double plage complète du type de données, vous pouvez utiliser le Single type de données, qui peut contenir des nombres à virgule flottante comprises entre -3.4028235E+38 et 3.4028235E+38. Les plus petites magnitudes pour les Singlevariables sont -1,401298E-45 pour les valeurs négatives et 1,401298E-45 pour les valeurs positives. Si vous avez un très grand nombre de variables qui contiennent de petits nombres à virgule flottante, le Common Language Runtime peut parfois stocker vos Singlevariables plus efficacement et économiser la consommation de mémoire.

Voir aussi