【问题标题】:How to deal with big numbers in javascript [duplicate]如何在javascript中处理大数字[重复]
【发布时间】:2010-11-26 22:03:36
【问题描述】:

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

【问题讨论】:

标签: javascript floating-point decimal biginteger bignum


【解决方案1】:

在为 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 的方案算术库 (https://github.com/jtobey/javascript-bignum)

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

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

  • 高精度计算函数
  • 但是:据说由于数字内部表示为字符串而速度很慢

【讨论】:

  • bignumber.js 的“BUT”是否仍然成立 - 这有什么问题吗?
【解决方案2】:

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

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

【讨论】:

  • +1 表示 an 答案,但 wow 该脚本需要重构。到处都是完全不必要的全局符号,只是要求碰撞。
  • @TJ 我认为这是 Java BigDecimal 类的或多或少的直接翻译......它一直存在 forever
  • 谢谢,如果它更容易理解和扩展,那就太好了。
【解决方案3】:

还有 Silent Matt 的 library 用于大整数。它不处理小数。

【讨论】:

  • 抱歉,我一直在寻找专门管理这种数字的人。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 1970-01-01
  • 2019-11-05
  • 1970-01-01
相关资源
最近更新 更多