Derniers tutoriels de développement web
 

JavaScript Nombres


JavaScript ne dispose que d' un type de number .

Les Numbers peuvent être écrits avec ou sans décimales.


Numbers JavaScript

JavaScript numbers peuvent être écrits avec ou sans décimales:

Exemple

var x = 34.00;    // A number with decimals
var y = 34;       // A number without decimals

Extra larges supplémentaires ou de petits nombres peuvent être écrits à caractère scientifique (exposant) notation:

Exemple

var x = 123e5;    // 12300000
var y = 123e-5;   // 0.00123

Numéros JavaScript sont toujours 64 bits à virgule flottante

Contrairement à de nombreux autres langages de programmation, JavaScript ne définit pas différents types de numéros, comme les entiers, court, long, en virgule flottante, etc.

numéros JavaScript sont toujours stockés en tant que double précision nombres à virgule flottante, en suivant la norme IEEE 754 international.

Ce format stocke les numéros en 64 bits, où le nombre (la fraction) est stocké dans les bits 0 à 51, l'exposant en bits 52 à 62, et le signe dans le bit 63:

Valeur (aka Fraction / Mantissa) Exposant Signe
52 bits (0 - 51) 11 bits (52 - 62) 1 bit (63)

Précision

Entiers (numéros sans une période ou la notation d'exposant) sont considérés comme précis jusqu'à 15 chiffres.

Exemple

var x = 999999999999999;   // x will be 999999999999999
var y = 9999999999999999;  // y will be 10000000000000000
Essayez - le vous - même »

Le nombre maximum de décimales est de 17, mais l'arithmétique à virgule flottante ne sont pas toujours précis à 100%:

Exemple

var x = 0.2 + 0.1;         // x will be 0.30000000000000004
Essayez vous - même »

Pour résoudre le problème ci-dessus, il contribue à multiplier et diviser:

Exemple

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3
Essayez - le vous - même »

Hexadécimal

JavaScript interprète constantes numériques comme hexadécimal si elles sont précédées de 0x.

Exemple

var x = 0xFF;             // x will be 255
Essayez - le vous - même »

Ne jamais écrire un nombre avec un zéro (comme 07).
Certaines versions JavaScript interprètent les numéros que octal si elles sont écrites avec un zéro.

Par défaut, Javascript affiche les nombres comme base de 10 décimales.

Mais vous pouvez utiliser le toString() méthode pour les numéros de sortie en tant que base 16 (hexadécimal), base 8 (octal), ou la base 2 (binaire).

Exemple

var myNumber = 128;
myNumber.toString(16);     // returns 80
myNumber.toString(8);      // returns 200
myNumber.toString(2);      // returns 10000000
Essayez - le vous - même »

Infini

Infinity (ou -Infinity) est la valeur JavaScript retournera si vous calculez un numéro extérieur le plus grand nombre possible.

Exemple

var myNumber = 2;
while (myNumber != Infinity) {          // Execute until Infinity
    myNumber = myNumber * myNumber;
}
Essayez vous - même »

Division par 0 (zéro) génère également Infinity:

Exemple

var x =  2 / 0;          // x will be Infinity
var y = -2 / 0;          // y will be -Infinity
Essayez - le vous - même »

Infinity est un nombre: typeOf Infinity retourne le nombre.

Exemple

typeof Infinity;        // returns "number"
Essayez - le vous - même »

NaN - Not a Number

NaN est un mot réservé JavaScript indiquant qu'une valeur est un nombre.

Essayer de faire de l' arithmétique avec une chaîne de caractères non-numérique se traduira par NaN (Not a Number):

Exemple

var x = 100 / "Apple";  // x will be NaN (Not a Number)
Essayez - le vous - même »

Cependant, si la chaîne contient une valeur numérique, le résultat sera un numéro:

Exemple

var x = 100 / "10";     // x will be 10
Essayez - le vous - même »

Vous pouvez utiliser la fonction globale JavaScript isNaN() pour savoir si une valeur est un nombre.

Exemple

var x = 100 / "Apple";
isNaN(x);               // returns true because x is Not a Number
Essayez - le vous - même »

Méfiez-vous des NaN. Si vous utilisez NaN dans une opération mathématique, le résultat sera également NaN:

Exemple

var x = NaN;
var y = 5;
var z = x + y;         // z will be NaN
Essayez - le vous - même »

Ou le résultat pourrait être une concaténation:

Exemple

var x = NaN;
var y = "5";
var z = x + y;         // z will be NaN5
Essayez - le vous - même »

NaN est un nombre, et typeof NaN retourne le nombre:

Exemple

typeof NaN;             // returns "number"
Essayez - le vous - même »

Les nombres peuvent être des objets

Normalement , les numéros JavaScript sont des valeurs primitives créées à partir de littéraux: var x = 123

Mais les chiffres peuvent également être définis comme des objets avec le nouveau mot - clé: var y = new Number(123)

Exemple

var x = 123;
var y = new Number(123);

// typeof x returns number
// typeof y returns object
Essayez vous - même »

Ne pas créer des objets numériques. Il ralentit la vitesse d'exécution.
Le new mot - clé complique le code. Cela peut produire des résultats inattendus:

Lorsque vous utilisez le == opérateur d'égalité, des nombres égaux semble égale:

Exemple

var x = 500;             
var y = new Number(500);

// (x == y) is true because x and y have equal values
Essayez - le vous - même »

Lorsque vous utilisez l'opérateur === d'égalité, des nombres égaux ne sont pas égaux, parce que l'opérateur === attend l'égalité à la fois le type et la valeur.

Exemple

var x = 500;             
var y = new Number(500);

// (x === y) is false because x and y have different types
Essayez - le vous - même »

Ou pire encore. Les objets ne peuvent pas être comparés:

Exemple

var x = new Number(500);             
var y = new Number(500);

// (x == y) is false because objects cannot be compared
Essayez - le vous - même »

objets JavaScript ne peuvent pas être comparés.


Testez-vous avec des exercices!

Exercice 1 » Exercice 2» Exercice 3 » Exercice 4»