library - Cómo lidiar con números grandes en javascript
javascript decimals js (4)
Hay una biblioteca BigInteger para JavaScript disponible aquí:
(Tenga en cuenta que no he usado esto por mí mismo, pruébelo y vea lo que piensa).
Esta pregunta ya tiene una respuesta aquí:
Estoy buscando una solución matemática que trate con números realmente (largos, grandes, enormes, tormentas). Aún no he encontrado nada, pero no quiero pensar que este problema no se haya resuelto en este momento. Estoy buscando una solución numérica fácil, como Microsoft Excel Precision (30 decimales) o una solución BigInteger (Java). en Javascript, por supuesto.
Mientras buscaba una gran biblioteca de enteros para una implementación crypto de ElGamal, probé varias bibliotecas con los siguientes resultados:
Recomiendo este: jsbn.js de Tom Wu ( http://www-cs-students.stanford.edu/~tjw/jsbn/ )
- Conjunto completo de funciones y rápido
Biblioteca de enteros grandes de Leemon Baird ( http://www.leemon.com/crypto/BigInt.js )
- Conjunto completo de funciones y bastante rápido
- PERO: ¡ La representación del número negativo tiene errores!
bignumber.js ( https://github.com/MikeMcl/bignumber.js )
- Conjunto bastante completo de funciones
- PERO: la conversión de números realmente grandes de cadenas en objetos BigNumber da como resultado INFINITY
Scheme arithmetic library for JavaScript ( https://github.com/jtobey/javascript-bignum )
- JS-Implementación de las funciones aritméticas del Esquema
- PERO: Sin función para y = x ^ e mod n
No he probado esto solo: BigNumber ( http://jsfromhell.com/classes/bignumber )
- Funciones para claculaciones de alta precisión
- PERO: Se dice que es lento debido a la representación interna de los números como cadenas
Parece que esto se ha resuelto antes:
¿Cuál es la solución estándar en Javascript para manejar grandes cantidades (BigNum)?
http://jsfromhell.com/classes/bignumber
http://www-cs-students.stanford.edu/~tjw/jsbn/
Si solo necesitas enteros, puedes usar BigInteger.js .
También está la library Silent Matt para Big Integers. No maneja decimales.