Maison > Article > interface Web > Comprendre BigInt en JavaScript
En JavaScript, les nombres sont traditionnellement représentés à l'aide du type Number, qui adhère à la norme IEEE 754 pour l'arithmétique à virgule flottante double précision. Cette représentation, bien que polyvalente, a une limitation : elle ne peut représenter en toute sécurité des entiers que jusqu'à (2^{53} - 1) (ou (9 007 199 254 740 991)). Pour les applications nécessitant des entiers plus grands, JavaScript introduit une solution via le type BigInt.
BigInt est un objet intégré en JavaScript qui permet de représenter des nombres entiers plus grands que ceux qui peuvent être gérés par le type Number. Contrairement à Number, qui convient à l'arithmétique à virgule flottante et peut gérer des valeurs comprises entre environ (-1,8 fois 10^{308}) et (1,8 fois 10^{308}), BigInt est conçu spécifiquement pour l'arithmétique entière de précision arbitraire.
Il existe plusieurs façons de créer des valeurs BigInt :
const bigIntValue = BigInt(123456789012345678901234567890);
Notez que BigInt accepte les chaînes et les nombres, mais lorsque vous utilisez des nombres, ils doivent être dans la plage d'un type Number.
const bigIntLiteral = 123456789012345678901234567890n;
Il s'agit d'une manière plus concise de définir directement les valeurs BigInt.
BigInt prend en charge la plupart des opérateurs arithmétiques standards. Voici un bref aperçu :
const a = 10n; const b = 20n; const sum = a + b; // 30n
const difference = b - a; // 10n
const product = a * b; // 200n
const quotient = b / 3n; // 6n (Note: Division results in a `BigInt` which is truncated towards zero)
const remainder = b % 3n; // 2n
const power = a ** 3n; // 1000n
BigInt peut être comparé à l'aide des opérateurs de comparaison standard. Notez que les valeurs BigInt et les valeurs Number ne sont pas directement comparables :
const a = 10n; const b = 10; console.log(a == b); // false console.log(a === BigInt(b)); // true
La conversion entre BigInt et Number peut être effectuée à l'aide de méthodes de conversion explicites :
const bigIntValue = 123n; const numberValue = Number(bigIntValue);
Remarque : cela peut perdre en précision si la valeur BigInt est trop grande.
const numberValue = 123; const bigIntValue = BigInt(numberValue);
const a = 10n; const b = 5; // The following line will throw a TypeError const result = a + b;
const bigIntValue = 123n; JSON.stringify(bigIntValue); // Throws TypeError
Pour gérer BigInt en JSON, vous devrez peut-être d'abord le convertir en chaîne :
const bigIntValue = 123n; const jsonString = JSON.stringify({ value: bigIntValue.toString() });
BigInt est particulièrement utile dans les scénarios où la précision avec de grands entiers est cruciale, tels que :
BigInt est un ajout puissant à JavaScript, étendant ses capacités de gestion des entiers au-delà des limites du type Number. Comprendre ses opérations, ses limites et ses cas d'utilisation appropriés peut aider à tirer parti de ses avantages pour les applications nécessitant des calculs de grands nombres entiers.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!