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 pi=3.14; // Utilise un point décimal
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 y=123e5; // 12300000
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

var x = 999999999999999; //x vaut 999999999999999 var y = 9999999999999999; //y vaut 10000000000000000

Essayez-le »

Le nombre maximal de décimales est de 17, mais l'arithmétique à virgule flottante n'est pas toujours précise à 100% :

Exemples

var x = 0.2+0.1; // Le résultat est 0.30000000000000004

Essayez-le »


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.

Exemples

var y = 0377;
var z = 0xFF;

Essayez-le »

lamp 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

var myNumber=128;
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

myNumber=2;
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 :

Exemples

var x = 2/0;
var y = -2/0;

Essayez-le »


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

var x = 1000 / "Apple";
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 :

Exemples

var x = 1000 / 0;
isNaN(x); // Retourne false

Essayez-le »


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 x = 123;
var y = new Number(123);
typeof(x) // Retourne Number
typeof(y) // Retourne Object

Essayez-le »

Exemples

var x = 123;             
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"
Autres extensions