Calculatrice de grands nombres|Addition, soustraction, multiplication et puissance sans limite de chiffres (BigInt)
Outil gratuit pour calculer avec exactitude d'énormes entiers, sans aucune erreur d'arrondi. Grâce au BigInt de JavaScript, il calcule précisément additions, soustractions, multiplications, divisions entières (quotient et reste) et puissances, même au-delà de 9 007 199 254 740 991 (2^53 − 1).
Pourquoi la précision se dégrade au-delà de 2^53
Une calculatrice classique ou le type Number de JavaScript ne peuvent plus distinguer des entiers consécutifs au-delà de 2^53 (Number.MAX_SAFE_INTEGER). BigInt permet de calculer avec exactitude même au-delà de cette limite.
| Number.MAX_SAFE_INTEGER | 9,007,199,254,740,991(253 − 1) |
|---|---|
| 9007199254740992 + 1 | Number: 9007199254740992(誤り) / BigInt: 9007199254740993(正確) |
Astuces
- Les calculatrices et tableurs classiques perdent en précision au-delà de 2^53 (environ 9 billiards), mais cet outil utilise BigInt pour calculer exactement, sans limite de chiffres.
- La division entière (÷) affiche à la fois le quotient et le reste, pratique pour vérifier les opérations modulo utilisées en cryptographie et dans les fonctions de hachage.
- L'exposant est plafonné à 1 000 000 par sécurité, car un exposant illimité pourrait bloquer le navigateur.
- Vous pouvez coller des nombres avec des séparateurs de milliers (par exemple
1 234 567) : ils sont retirés automatiquement avant le calcul. - Cliquez sur "Insérer un exemple" pour remplir automatiquement un cas dépassant 2^53, et voir immédiatement la différence avec une calculatrice classique.
Questions fréquentes
Anecdote — Pourquoi les ordinateurs peinent avec les très grands nombres
La représentation numérique des ordinateurs a longtemps eu une limite stricte. Le type virgule flottante 64 bits (double précision), utilisé par défaut dans la plupart des langages de programmation, ne peut représenter en toute sécurité que les entiers jusqu'à 2^53 − 1 (9 007 199 254 740 991), car sa mantisse ne compte que 53 bits. Au-delà, des erreurs d'arrondi apparaissent dès qu'on représente de tels entiers. Notre propre outil Calculatrice possède exactement cette même limite de précision.
Les entiers de précision arbitraire (appelés "bignums") résolvent ce problème. Vers 2020, JavaScript a introduit un nouveau type nommé BigInt dans tous les grands navigateurs, permettant une arithmétique entière exacte sans autre limite de chiffres que la mémoire disponible. En interne, un bignum est stocké sous forme de blocs de chiffres, si bien que le temps de calcul augmente avec le nombre de chiffres — il existe un vrai compromis entre exactitude et vitesse.
Cette technologie est également indispensable en cryptographie. Les clés RSA, par exemple, utilisent couramment des entiers de 2048 bits (plus de 600 chiffres décimaux), et des bibliothèques de précision arbitraire sont utilisées partout dans le monde pour calculer avec exactitude les multiplications et exponentiations modulaires que ces clés exigent.
La programmation compétitive fait aussi fréquemment appel à d'énormes factorielles (100! compte 158 chiffres) ou à des termes lointains de la suite de Fibonacci. Les types numériques ordinaires accumulent des erreurs en cours de calcul, si bien que la maîtrise des bignums fait souvent la différence entre une solution correcte et une solution erronée.