web-dev-qa-db-fra.com

Comment gérer les grands nombres en javascript

Je recherche une solution mathématique qui traite des nombres vraiment (longs, gros, énormes, orages). Je n'ai encore rien trouvé, mais je ne veux pas penser que ce problème n'est pas résolu pour le moment. Je recherche une solution Number simple, comme Microsoft Excel Precision (30 décimales), ou une solution BigInteger (Java). en Javascript bien sûr.

23
crsuarezf
20
xscott

En recherchant une grande bibliothèque d'entiers pour une implémentation de cryptographie ElGamal, j'ai testé plusieurs bibliothèques avec les résultats suivants:

Je recommande celui-ci: jsbn.js de Tom Wu ( http://www-cs-students.stanford.edu/~tjw/ jsbn / )

  • Ensemble complet de fonctions et rapide

Grande bibliothèque d'entiers de Leemon Baird ( http://www.leemon.com/crypto/BigInt.js )

  • Ensemble complet de fonctions et assez rapide
  • MAIS: La représentation des nombres négatifs est boguée!

bignumber.js ( https://github.com/MikeMcl/bignumber.js )

  • Ensemble de fonctions assez complet
  • MAIS: La conversion de très gros nombres de chaînes en objets BigNumber donne INFINITY

Bibliothèque arithmétique de schéma pour JavaScript ( https://github.com/jtobey/javascript-bignum )

  • JS-Implémentation des fonctions arithmétiques du schéma
  • MAIS: Aucune fonction pour y = x ^ e mod n

Je n'ai pas testé cela par moi-même: BigNumber ( http://jsfromhell.com/classes/bignumber )

  • Fonctions pour claculations de haute précision
  • MAIS: On dit qu'il est lent en raison de la représentation interne des nombres sous forme de chaînes
11
Torben

Il existe une bibliothèque BigInteger pour JavaScript disponible ici:

(Notez que je ne l'ai pas utilisé moi-même. Essayez-le et voyez ce que vous en pensez.)

3
LukeH

Il y a aussi Silent Matt bibliothèque pour Big Integers. Il ne gère pas les décimales.

0
Jérôme Verstrynge