Les nombres en JavaScript

Deux types de nombres peuvent être mis en évidence dans le JavaScript moderne : Regular et BigInt.

  • Les nombres réguliers sont stockés dans le format de 64-bit IEEE-754. Il est également connu sous le nom de « double-precision floating-point numbers ». Les développeurs utilisent ces nombres le plus souvent dans leur pratique.
  • Les nombres BigInt sont utilisés pour représenter des entiers de longueur arbitraire. Nous ne les utilisons que dans quelques domaines uniques.

Les moyens d'écrire un nombre

Disons que vous voulez écrire un milliard. Voici la méthode la plus courante :

let billion = 1000000000;

Dans notre pratique, nous essayons généralement d'éviter d'écrire beaucoup de zéros. Nous préférons écrire, par exemple, "1bn". Maintenant, nous allons apprendre comment raccourcir un nombre en JavaScript.

Pour raccourcir un nombre en JavaScript, vous devez ajouter la lettre "e" au nombre et spécifier le nombre de zéros. Cela ressemblera à ceci :

Javascript numbers
let million = 1e6; // 1 million, literally: 1 and 6 zeroes console.log(2.5e6); // 2.5 millions (2,500,000)
Javascript numbers
let exponential = 2.56e3; console.log(exponential); // 2560

Maintenant, imaginez que vous voulez écrire “un microseconde”. Vous devez le faire comme suit :

let ms = 0.000001;

Si vous êtes impatient d'éviter d'écrire un grand nombre de zéros, vous devez agir comme ceci :

Javascript numbers
let ms = 1e-6; // six zeroes to the left from 1 console.log(ms);

Comme 0.000001 comprend 6 zéros, ce sera 1e-6.

Les nombres Hexadécimaux, Binaires et Octaux

En Javascript, nous utilisons des nombres hexadécimaux, également connus sous le nom de Hex, pour représenter des couleurs, des caractères d'encodage, et bien plus encore. Heureusement, il existe un moyen plus court de les écrire :

0x et ensuite le nombre.

Voici un exemple :

Javascript hexadecimal numbers
let hex = 0xfff; console.log(hex); // 4095 console.log(0xff); // 255 console.log(0xFF); // 255 (the same, case doesn't matter)

Voici un exemple de nombres octaux :

Javascript octal numbers
let octal = 030; console.log(octal); // 24

En général, les développeurs utilisent plus rarement les systèmes numériques binaires et octaux. Ces systèmes numériques sont également supportés en utilisant les préfixes suivants : 0b et 0o.

Par exemple :

Javascript binary and octal numbers
let a = 0b11111111; // binary form of 255 let b = 0o377; // octal form of 255 console.log(a == b); // true

toString (Base)

Cette méthode renvoie une représentation en chaîne de num, avec une base spécifique, qui peut varier de 2 à 36. Mais par défaut, c'est 10.

Par exemple :

Javascript toString method numbers
let num = 255; console.log(num.toString(16)); // ff console.log(num.toString(2)); // 11111111

Arrondissement

Une opération typique lors du travail avec des nombres est l'arrondissement.

Vous pouvez trouver ci-dessous plusieurs fonctions intégrées utilisées pour l'arrondissement :

Math.floor

Avec l'aide de cette fonction, vous pouvez facilement arrondir à la baisse. Par exemple, 6.2 devient 6, -2.2 devient-3.

Math.ceil

Cette fonction fait l'inverse. Elle arrondit les nombres à la hausse. Par exemple, 3.1 deviendra 4, -2.2 deviendra -2 .

Math.round

Utiliser cette fonction arrondira à l'entier le plus proche. Par exemple, 3.1 devient 3, 5.6 devient 6, et -2.2 devient -2.

Math.trunc

Cette fonction supprime tout ce qui se trouve après la virgule. Par exemple, 6.1 devient 6.

Calcul imprécis

Dans le format 64 bits IEEE-754, 64 bits sont utilisés pour stocker un nombre. 52 d'entre eux sont utilisés pour stocker les chiffres, 11 d'entre eux pour la position de la virgule, et 1 pour le signe.

Dans le cas où le nombre est trop grand, il débordera du stockage de 64 bits et donnera potentiellement une infinité.

Pour mieux comprendre, regardez cet exemple :

Javascript infinity numbers
console.log(2e500); // Infinity

La perte de précision est également chose courante. Regardez le test suivant (faux!) :

Javascript numbers
console.log(0.1 + 0.2 == 0.3); // false

Tests : isFinite et isNan

Avant tout, jetons un œil aux deux valeurs numériques uniques suivantes :

  1. Infinity (et -Infinity). Cette valeur numérique est supérieure (ou inférieure) à tout le reste.
  2. NaN montre une erreur.

Il est essentiel de savoir que ce ne sont pas des nombres standard. Par conséquent, vous devez utiliser des fonctions spéciales pour les vérifier.

    Le isNaN(value) convertit son argument en un nombre. Par la suite, il teste si c'est isNaN(value) ou non.

    Par exemple :

    Javascript numbers isNaN method
    console.log(isNaN(NaN)); // true console.log(isNaN("str")); // true

    Vous pouvez vous demander pourquoi il n'est pas possible d'utiliser la comparaison de === NaN. C'est simplement parce que le NaN est unique en ce qu'il n'est égal à rien, même pas à lui-même :

    Javascript NaN compare
    console.log(NaN === NaN); // false
  • isFinite(value) convertira son argument en un nombre et renverra vrai si le nombre est régulier, non NaN/Infinity/-Infinity.

Jetez un coup d'œil à cet exemple :

Javascript isFinite method
console.log(isFinite("23")); // true console.log(isFinite("str")); // false, because a special value: NaN console.log(isFinite(Infinity)); // false, because a special value: Infinity

Il existe des cas où les développeurs utilisent isFinite pour valider si une valeur de chaîne est un nombre régulier, comme ceci :

Javascript isFinite method
let num = +prompt("Enter a number", ''); console.log(isFinite(num));// if you don't enter Infinity, -Infinity or Nan, then will be true

ParseInt et ParseFloat

Une conversion numérique qui utilise un + ou un Number() est stricte. Si une valeur n'est pas exactement un nombre, elle échouera comme suit :

Javascript parse numbers
console.log(+"200px"); // NaN

Les espaces au début ou à la fin de la chaîne sont la seule exception, car ils sont ignorés.

Par ailleurs, en CSS, vous pouvez rencontrer des valeurs en unités, comme "20pt" ou "50px". De plus, dans de nombreux pays, le symbole de la monnaie suit le montant. Par exemple, "19$". Si vous voulez extraire une valeur numérique de cela, vous pouvez utiliser parseInt et parseFloat. Ces fonctions liront à partir d'une chaîne jusqu'au point où elles ne le peuvent plus. Si une erreur se produit, le nombre qui a été recueilli sera retourné. Le parseInt renverra un entier, tandis que parseFloat renverra un nombre à virgule flottante, comme suit :

Javascript parse numbers
console.log(parseInt('50px')); // 50 console.log(parseFloat('22.5em')); // 22.5 console.log(parseInt('20.4$')); // 20, only the integer part is returned console.log(parseInt('22.2')); // 22, only the integer part is returned console.log(parseFloat('22.2.4')); // 22.2, the second point stops the reading

Dans certaines situations, les fonctions parseInt et parseFloat ne retourneront pas le NaN. Cela peut se produire quand aucun chiffre n'est trouvé. Regardez l'exemple suivant :

Javascript parse numbers
console.log(parseInt('a13')); // NaN, the first symbol stops the process

La fonction parseInt() a un paramètre alternatif qui spécifie la base du système numérique. Donc, parseInt peut analyser les chaînes de nombres hexadécimaux, binaires, etc :

Javascript parse hex numbers
console.log(parseInt('0xff', 16)); // 255 console.log(parseInt('ff', 16)); // 255, without 0x also works console.log(parseInt('2n9', 36)); // 3429

Heure du Quiz : Testez Vos Compétences!

Prêt à relever le défi de ce que vous avez appris ? Plongez dans nos quiz interactifs pour approfondir votre compréhension et renforcer vos connaissances de manière ludique.

Trouvez-vous cela utile?