JavaScript BigInt

Javascript BigInt
les variables sont utilisées pour stocker de grandes valeurs entières qui sont trop grandes pour être représentées par un JavaScript normal Number
.
Précision des entiers JavaScript
Les entiers JavaScript ne sont précis que jusqu’à 15 chiffres :
En JavaScript, tous les nombres sont stockés dans un format à virgule flottante 64 bits (norme IEEE 754).
Avec cette norme, un grand entier ne peut pas être représenté exactement et sera arrondi.
Pour cette raison, JavaScript ne peut représenter en toute sécurité que des entiers :
Jusqu’à 9007199254740991 +(253-1)
et
Jusqu’à -9007199254740991 -(253-1).
Les valeurs entières en dehors de cette plage perdent en précision.
Comment créer un BigInt
Créer un BigInt
ajoutez n à la fin d’un entier ou appelez
BigInt()
:
BigInt : un nouveau type de données JavaScript
Le Javascript typeof
un BigInt
est « bigint »:
BigInt
est le deuxième type de données numériques en JavaScript (après Number
).
Avec BigInt
le nombre total de types de données pris en charge en JavaScript est de 8 :
1. Chaîne
2. Numéro
3. Bigint
4. Booléen
5. Indéfini
6. Nul
7. Symbole
8. Objet
Opérateurs BigInt
Opérateurs pouvant être utilisés sur un JavaScript Number
peut également être utilisé sur un BigInt
.
Exemple de multiplication BigInt
soit x = 9007199254740995n ;
soit y = 9007199254740995n ;
soit z = x * y ;
Essayez-le vous-même »
Remarques
Arithmétique entre un BigInt
et un Number
n’est pas autorisé (la conversion de type perd des informations).
Un décalage à droite non signé (>>>) ne peut pas être effectué sur un BigInt
(elle n’a pas de largeur fixe).
Décimales BigInt
UN BigInt
ne peut pas avoir de décimales.
Exemple de division BigInt
soit x = 5n ;
soit y = x / 2 ;
// Erreur : Impossible de mélanger BigInt et d’autres types, utilisez une conversion explicite.
soit x = 5n ;
soit y = Nombre(x) / 2 ;
Essayez-le vous-même »
BigInt Hex, octal et binaire
BigInt
peut également être écrit en notation hexadécimale, octale ou binaire :
Exemple hexadécimal BigInt
soit hexadécimal = 0x20000000000003n ;
soit oct = 0o400000000000000003n
laisser bin = 0b100000000000000000000000000000000000000000000000011n ;
Essayez-le vous-même »
Curiosité de précision
L’arrondi peut compromettre la sécurité du programme :
MAX_SAFE_INTEGER Exemple
9007199254740992 === 9007199254740993; // est vrai !!!
Essayez-le vous-même »
Prise en charge du navigateur
BigInt
est pris en charge dans tous les navigateurs depuis septembre 2020 :
Chrome 67 | Bord 79 | Firefox 68 | Safari 14 | Opéra 54 |
Mai 2018 | janvier 2020 | juil. 2019 | septembre 2020 | juin 2018 |
Nombres entiers sûrs minimum et maximum
ES6 a ajouté les propriétés max et min à l’objet Number :
MAX_SAFE_INTEGER
MIN_SAFE_INTEGER
Nouvelles méthodes numériques
ES6 a également ajouté 2 nouvelles méthodes à l’objet Number :
Number.isInteger()
Number.isSafeInteger()
La méthode Number.isInteger()
Le Number.isInteger()
la méthode renvoie true
si l’argument est un entier.
La méthode Number.isSafeInteger()
Un entier sûr est un entier qui peut être exactement représenté par un nombre à double précision.
Le Number.isSafeInteger()
la méthode renvoie true
si l’argument est un entier sûr.
Exemple isSafeInteger()
Number.isSafeInteger(10);
Number.isSafeInteger(12345678901234567890);
Essayez-le vous-même »
Les entiers sûrs sont tous les entiers de -(253 – 1) à +(253 – 1).
Ceci est sûr : 9007199254740991. Ceci n’est pas sûr : 9007199254740992.
#JavaScript #BigInt