Partager via


Données numériques

Le choix entre les deux types de données numériques de JScript, les données de type entier et les données à virgule flottante, dépend du contexte d'utilisation de celles-ci. Il existe également différentes manières de représenter littéralement des données de type entier et à virgule flottante.

Les nombres entiers positifs, les nombres entiers négatifs et zéro sont des entiers. Ils peuvent être représentés en base 10 (décimale), en base 8 (octale) et en base 16 (hexadécimale). La plupart des nombres sont écrits au format décimal dans JScript. Les entiers en base octale sont reconnaissables à leur préfixe 0 (zéro). Ils peuvent uniquement contenir des chiffres compris entre 0 et 7. Un nombre ayant 0 comme préfixe, mais contenant les chiffres 8 et/ou 9 est interprété comme un nombre décimal. Il est généralement déconseillé d'utiliser des nombres en base octale.

Les entiers hexadécimaux (hex) ont comme préfixe« 0x » (zéro et x|X). Ils peuvent contenir les chiffres compris entre 0 et 9, ainsi que les lettres A à F (en majuscules ou minuscules). Les lettres A à F représentent, sous forme de chiffres uniques, les nombres 10 à 15 en base 10. Autrement dit, 0xF équivaut à 15 et 0x10 à 16.

Les nombres octaux et hexadécimaux peuvent être négatifs, mais ne peuvent pas comporter de partie décimale. De plus, ils ne peuvent pas être écrits en notation scientifique (élévation à une puissance).

Les valeurs à virgule flottante sont des nombres entiers avec une partie décimale. À l'instar des entiers, elles peuvent être représentées littéralement par des chiffres suivis d'une virgule et d'autres chiffres. De plus, elles peuvent être exprimées en notation scientifique. Cela signifie que la lettre e majuscule ou minuscule est utilisée pour représenter « fois dix à la puissance de ». Un nombre qui commence par un seul 0 et comporte une virgule décimale est interprété comme un littéral à virgule flottante décimal et non comme un littéral octal.

En outre, les nombres à virgule flottante dans JScript peuvent représenter des valeurs numériques spéciales que les types de données entier ne peuvent pas représenter. Il s'agit des valeurs suivantes :

  • NaN (pas un nombre). Utilisé lorsqu'une opération mathématique est effectuée sur des données inappropriées, des chaînes par exemple ou la valeur undefined.

  • Infinity. Utilisé lorsqu'un nombre positif est trop grand pour être représenté dans JScript.

  • -Infinity (Infini négatif) Utilisé lorsqu'un nombre négatif est trop grand pour être représenté dans JScript.

  • Zéro (0) positif ou négatif. JScript distingue les zéros positif et négatif dans certains cas.

Voici quelques exemples de nombres JScript. Notez qu'un nombre commençant par « 0x » et contenant une virgule décimale génère une erreur.

Nombre

Description

Équivalent décimal

.0001, 0.0001, 1e-4, 1.0e-4

Quatre nombres à virgule flottante, tous équivalents.

0.0001

3.45e2

Nombre à virgule flottante.

345

42

Entier.

42

0378

Entier. Bien que ce nombre ressemble à un nombre en base octale (il commence par zéro), 8 n'est pas un chiffre octal valide ; aussi ce nombre est-il traité comme nombre décimal. Il en résulte un avertissement de niveau 1.

378

0377

Entier octal. Notez que même si, à première vue, ce nombre semble différer d'une unité seulement par rapport au nombre précédent, sa valeur réelle est assez différente.

255

0.0001, 00.0001

Nombre à virgule flottante. Bien que ce nombre commence par zéro, il ne s'agit pas d'un nombre octal car il comporte une virgule décimale.

0.0001

0Xff

Entier hexadécimal.

255

0x37CF

Entier hexadécimal.

14287

0x3e7

Entier hexadécimal. Notez que la lettre e n'est pas considérée comme une puissance.

999

0x3.45e2

Erreur. Les nombres hexadécimaux ne peuvent pas comporter de parties décimales.

Néant (erreur du compilateur)

Les variables de n'importe quel type de données intégral ne peuvent jamais représenter qu'une plage de nombres finie. Si vous tentez d'assigner un littéral numérique trop petit ou trop grand à un type de données entier, le système génère une erreur d'incompatibilité de type au moment de la compilation. Pour plus d'informations, consultez Liste des types de données.

Types de données des littéraux

Dans la plupart des cas, le type de données dans lequel JScript interprète les littéraux numériques importe peu. Toutefois, lorsque les nombres sont très longs ou très précis, ces détails sont importants.

Les littéraux entiers dans JScript peuvent représenter des données de type int, long, ulong, decimal ou double, selon la taille du littéral et son utilisation. Les littéraux figurant dans la plage du type int (-2147483648 à 2147483647) sont interprétés comme étant de type int. Les littéraux se trouvant en dehors de cette plage, mais compris dans la plage du type long (-9223372036854775808 à 9223372036854775807), sont interprétés comme long. Les littéraux en dehors de cette plage, mais compris dans la plage du type ulong (9223372036854775807 à 18446744073709551615) sont interprétés comme ulong. Tous les autres littéraux entiers sont interprétés comme étant du type double, ce qui donne lieu à une perte de précision. Il existe une exception à la dernière règle : le littéral sera interprété comme un type decimal s'il est immédiatement stocké dans une variable ou une constante de type decimal ou s'il est passé à une fonction typée pour recevoir un type decimal.

Un littéral à virgule flottante JScript est interprété comme un type de données double, à moins qu'il ne soit immédiatement utilisé comme decimal (au même titre que les littéraux entiers), auquel cas le littéral est interprété comme un type decimal. Le type de données decimal ne peut représenter ni NaN, ni Infinity (positif ou négatif).

Voir aussi

Référence

NaN, propriété (Global)

Infinity, propriété

Concepts

Expressions JScript

Autres ressources

Données JScript

Types de données (Visual Studio - JScript)