如何在javascript中处理大数字

IT技术 javascript floating-point decimal biginteger bignum
2021-01-14 12:35:10

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

3个回答

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

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

  • 功能齐全,速度快

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

  • 功能齐全,速度相当快
  • 但是:负数表示有问题!

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

  • 功能齐全
  • 但是:将非常大的数字从字符串转换为 BigNumber 对象会导致 INFINITY

JavaScript 的 Scheme 算法库 ( https://github.com/jtobey/javascript-bignum )

  • JS-Scheme算术函数的实现
  • 但是: y= x^e mod n 没有函数

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

  • 高精度计算函数
  • 但是:由于数字作为字符串的内部表示,据说它很慢
bignumber.js 的“BUT”是否仍然成立 - 这有问题吗?
2021-03-31 12:35:10

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

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

@TJ我认为一个是在Java BigDecimal类的更多或更少的直接翻译...它一直围绕永远
2021-03-14 12:35:10
+1答案,但是那个脚本需要重构。到处都是完全不必要的全局符号,只是要求碰撞。
2021-04-03 12:35:10
谢谢,如果它更容易理解和扩展,那就太好了。
2021-04-07 12:35:10

还有 Silent Matt 的Big Integers它不处理小数。

对不起,但我正在寻找一个专门管理那种数字的人。:)
2021-03-18 12:35:10