如何在javascript中处理大数字

时间:2010-11-26 22:03:36

标签: javascript floating-point decimal biginteger bignum

我正在寻找一个处理真实(长,大,巨大,风暴)数字的数学解决方案。我还没有找到任何东西,但我不想认为这个问题目前还没有解决。我正在寻找一个简单的数字解决方案,如Microsoft Excel Precision(30位小数)或BigInteger(Java)解决方案。当然是在Javascript中。

4 个答案:

答案 0 :(得分:19)

答案 1 :(得分:10)

在为ElGamal加密实现寻找一个大整数库时,我测试了几个库,结果如下:

我推荐这个: Tom Wu的jsbn.js(http://www-cs-students.stanford.edu/~tjw/jsbn/

  • 全面的功能集和快速

Leemon Baird的大整数库(http://www.leemon.com/crypto/BigInt.js

  • 全面的功能集和非常快的
  • BUT:负数表示错误!

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

  • 非常完整的功能集
  • BUT:将字符串中的大数字转换为BigNumber对象会导致INFINITY

JavaScript的方案算术库(https://github.com/jtobey/javascript-bignum

  • JS- Scheme算法函数的实现
  • BUT: y = x ^ e mod n
  • 无功能

我自己没有测试过这个: BigNumber(http://jsfromhell.com/classes/bignumber

  • 高精度计算的功能
  • BUT:由于数字作为字符串的内部表示,据说它很慢

答案 2 :(得分:3)

这里有一个适用于JavaScript的BigInteger库:

(请注意,我自己没有使用过它。尝试一下,看看你的想法。)

答案 3 :(得分:0)

对于Big Integers,还有Silent Matt的library。它不处理小数。