Objet NumberJavaScript
JavaScript n'a qu'un seul type de nombre.
Les nombres peuvent être écrits avec ou sans point décimal.
Nombres JavaScript
Les nombres JavaScript peuvent être écrits avec ou sans point décimal :
Exemples
var x=34; // N'utilise pas de point décimal
Les nombres très grands ou très petits peuvent être écrits en notation scientifique (exponentielle) :
Exemples
var z=123e-5; // 0.00123
Tous les nombres JavaScript sont en 64 bits
JavaScript n'est pas un langage typé. Contrairement à de nombreux autres langages de programmation, JavaScript ne définit pas différents types de nombres, tels que les entiers, short, long, les nombres à virgule flottante, etc.
En JavaScript, les nombres ne sont pas divisés en types entier et à virgule flottante ; tous les nombres sont du type à virgule flottante. JavaScript utilise le format à virgule flottante 64 bits défini par la norme IEEE754 pour représenter les nombres. Il peut représenter une valeur maximale (Number.MAX_VALUE) de±1.7976931348623157e+308, et une valeur minimale (Number.MIN_VALUE) de±5e-324。
Ce format utilise 64 bits pour stocker des valeurs numériques, où les bits 0 à 51 stockent le nombre (fraction), les bits 52 à 62 stockent l'exposant, et le bit 63 stocke le signe :

| Valeur (ou fraction/mantisse) | Exposant | Signe |
|---|---|---|
| 52 bits (0 - 51) | 11 bits (52 - 62) | 1 bit (63) |

Precision
Les entiers (sans point décimal ni notation exponentielle) peuvent comporter jusqu'à 15 chiffres.
Exemples
Essayez-le »
Le nombre maximal de décimales est de 17, mais l'arithmétique à virgule flottante n'est pas toujours précise à 100% :
Octal et hexadécimal
Si le préfixe est 0, JavaScript interprète la constante numérique comme un nombre octal ; si le préfixe est 0 et "x", il l'interprète comme un nombre hexadécimal.
| N'écrivez jamais un zéro avant un nombre, sauf si vous avez besoin d'une conversion octale. |
Par défaut, les nombres JavaScript sont affichés en décimal.
Mais vous pouvez utiliser la méthode toString() pour afficher en hexadécimal, octal et binaire.
Exemples
myNumber.toString(16); // Retourne 80
myNumber.toString(8); // Retourne 200
myNumber.toString(2); // Retourne 10000000
Essayez-le »
Infini
Lorsqu'une opération numérique dépasse la limite supérieure des nombres que JavaScript peut représenter (dépassement de capacité), le résultat est une valeur d'infini spéciale, représentée par Infinity en JavaScript. De même, lorsqu'un nombre négatif dépasse la plage des nombres négatifs que JavaScript peut représenter, le résultat est l'infini négatif, représenté par -Infinity en JavaScript. Le comportement des valeurs d'infini est conforme à ce que nous attendons : les résultats de l'addition, de la soustraction, de la multiplication et de la division basés sur ceux-ci sont toujours l'infini (en conservant bien sûr leurs signes).
Exemples
while (myNumber!=Infinity)
{
myNumber=myNumber*myNumber; // Répéter le calcul jusqu'à ce que myNumber soit égal à Infinity
}
Essayez-le »
La division par 0 produit également l'infini :
NaN - Valeur non numérique
La propriété NaN est une valeur spéciale représentant une valeur non numérique. Cette propriété est utilisée pour indiquer qu'une valeur n'est pas un nombre. Vous pouvez définir un objet Number sur cette valeur pour indiquer qu'il ne s'agit pas d'une valeur numérique.
Vous pouvez utiliser la fonction globale isNaN() pour déterminer si une valeur est une valeur NaN.
Exemples
isNaN(x); // Renvoie true
var y = 100 / "1000";
isNaN(y); // Retourne false
Essayez-le »
Diviser par 0 donne l'infini, et l'infini est un nombre :
Les nombres peuvent être des nombres ou des objets
Les nombres peuvent être initialisés avec des données primitives, comme x = 123;
Les objets Number de JavaScript sont initialisés avec des données, var y = new Number(123);
Exemples
var y = new Number(123);
typeof(x) // Retourne Number
typeof(y) // Retourne Object
Essayez-le »
Exemples
var y = new Number(123);
(x === y) // est faux, car x est un nombre et y est un objet
Essayez-le »
Propriétés de Number
| Propriété | Description |
|---|---|
| Number.MAX_VALUE | Valeur maximale |
| Number.MIN_VALUE | Valeur minimale |
| Number.NaN | Non numérique |
| Number.NEGATIVE_INFINITY | Infini négatif, renvoyé en cas de dépassement |
| Number.POSITIVE_INFINITY | Infini positif, renvoyé en cas de dépassement |
| Number.EPSILON |
Représente la différence entre 1 et le plus petit nombre supérieur à 1 et le plus proche de 1. |
| Number.MIN_SAFE_INTEGER | Entier sûr minimal. |
| Number.MAX_SAFE_INTEGER | Entier sûr maximal. |
Méthodes de Number
| Méthode | Description |
|---|---|
| Number.parseFloat() | Convertit une chaîne en nombre à virgule flottante. Équivalent à la méthode globaleparseFloat(). |
| Number.parseInt() |
Convertit une chaîne en entier. Équivalent à la méthode globaleparseInt(). |
| Number.isFinite() | Détermine si le paramètre transmis est un nombre fini. |
| Number.isInteger() | Détermine si le paramètre transmis est un entier. |
| Number.isNaN() | Détermine si le paramètre transmis est NaN. |
| Number.isSafeInteger() | Détermine si le paramètre transmis est un entier sûr. |
Quelques méthodes sur le prototype du type number
| Méthode | Description |
|---|---|
| toExponential() | Retourne une chaîne représentant un nombre en notation exponentielle, par exemple : 1.23e+2 |
| toFixed() |
Retourne une représentation avec le nombre de décimales spécifié. var a=123; b=a.toFixed(2); // b="123.00" |
| toPrecision() |
Renvoie un nombre avec la précision spécifiée. Dans l'exemple ci-dessous, dans a=123, le 3 disparaîtra en raison des limitations de précision : var a=123; b=a.toPrecision(2); // b="1.2e+2" |