Calculateur de grands nombres
Calculateur de grands nombres
Arithmétique sur entiers à précision arbitraire
Arithmétique de précision arbitraire
L'arithmétique informatique ordinaire se heurte à des limites de précision dès que les nombres deviennent suffisamment grands — ce calculateur contourne entièrement ce problème grâce au type natif BigInt de JavaScript.
Le type Number standard de JavaScript stocke les valeurs en virgule flottante 64 bits, qui perd son exactitude au-delà de 2⁵³ − 1. Additionnez deux nombres plus grands que cela avec des mathématiques ordinaires, et le résultat peut être faux sans avertissement.
BigInt représente les entiers en interne comme une séquence de chiffres de longueur arbitraire, plutôt que comme une approximation en virgule flottante de taille fixe — chaque opération reste donc exacte, quel que soit le nombre de chiffres impliqués.
Division sans fractions
Comme BigInt ne comprend que les nombres entiers, la division de deux grands entiers produit un quotient entier et un reste — exactement comme la division posée que vous avez apprise à l'école (17 ÷ 5 = 3 reste 2). Par commodité, ce calculateur calcule aussi une approximation décimale avec le nombre de décimales que vous choisissez, en utilisant en interne une arithmétique BigInt mise à l'échelle afin que cette approximation elle-même ne repose jamais sur une division en virgule flottante imprécise.
Où cela compte
L'arithmétique exacte sur les grands entiers est essentielle en cryptographie (les clés RSA impliquent des nombres de plusieurs centaines de chiffres), en combinatoire (les factorielles croissent de façon explosive) et dans tout calcul — des chiffres de la dette nationale aux distances astronomiques exprimées dans les plus petites unités — où chaque chiffre doit être fiable.
Les nombres JavaScript standard perdent leur précision au-delà de ce point.
BigInt prend entièrement en charge les nombres négatifs et préserve le signe à travers chaque opération.
La division renvoie toujours les deux, puisque BigInt n'a pas de type fractionnaire.
Points clés à retenir
- BigInt garde les entiers exacts quel que soit le nombre de chiffres qu'ils contiennent, contrairement aux nombres à virgule flottante ordinaires.
- La division renvoie un quotient et un reste car BigInt ne prend pas en charge les fractions nativement — avec en plus une approximation décimale optionnelle.
- Les exposants doivent être des nombres entiers non négatifs, car un exposant négatif nécessiterait une fraction que BigInt ne peut pas représenter.
Questions fréquemment posées
- Saisissez le premier nombre entier, quel que soit son nombre de chiffres.
- Choisissez une opération : addition, soustraction, multiplication, division ou exponentiation (puissance).
- Saisissez le second nombre (pour la division, il s'agit du diviseur ; pour la puissance, il s'agit de l'exposant).
- Pour la division, définissez également le nombre de décimales souhaitées dans le résultat décimal approximatif.
- Cliquez sur « Calculer » pour voir le résultat exact.
Le type Number ordinaire de JavaScript ne peut représenter exactement les nombres entiers que jusqu'à 2⁵³ − 1 (environ 9 quadrillions) — au-delà, les calculs perdent silencieusement en précision. Ce calculateur utilise à la place le type natif BigInt de JavaScript, qui peut représenter des entiers de n'importe quelle taille exactement, sans aucune erreur d'arrondi, quel que soit le nombre de chiffres saisis.
BigInt ne prend en charge que l'arithmétique des nombres entiers — il n'a aucune notion intégrée de fraction. Le résultat exact de la division de deux grands entiers est donc exprimé sous la forme d'un quotient entier (le nombre de fois où le diviseur s'y insère) et d'un reste (ce qu'il reste), exactement comme dans une division posée. Le calculateur calcule en plus un développement décimal approximatif, jusqu'au nombre de décimales demandé, en utilisant une arithmétique BigInt mise à l'échelle plutôt que des nombres à virgule flottante — de sorte que même cette approximation reste exacte à la précision demandée.
La division par zéro est mathématiquement indéfinie pour tout nombre, grand ou petit, donc le calculateur la bloque et affiche une erreur claire plutôt qu'un résultat incorrect.
Non — l'exponentiation BigInt ne prend en charge que des exposants entiers non négatifs, car un exposant négatif nécessiterait un résultat fractionnaire (comme 2⁻¹ = 0.5), que BigInt ne peut pas représenter. Saisissez un nombre entier positif comme exposant pour l'opération de puissance.
En pratique, BigInt peut représenter des entiers comptant des milliers de chiffres — bien plus que n'importe quel calcul courant n'en a besoin. Les principales limites sont la mémoire de votre navigateur et le temps que vous êtes prêt à attendre pour qu'une exponentiation extrêmement grande se termine, et non un plafond fixe de nombre de chiffres.