javascript - javascript中如何处理大数字

标签 javascript floating-point decimal biginteger bignum

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

最佳答案

在为 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 )

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

关于javascript - javascript中如何处理大数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31881117/

相关文章:

Javascript:window.print();不工作

javascript - 浏览器未检测到与 x-ua 兼容的元标记,并在使用 javascript 动态更改后设置为新的 IE 浏览器版本

javascript - 如何在 JavaScript 中将十六进制(缓冲区)转换为 IPv6

python - 在python中打印 float

class - 为什么有 GLint 和 GLfloat?

C++ float 和 valgrind 奇怪的行为

javascript - SVG defs 上的鼠标事件( mask )

c - 为什么这两个函数不将十进制转换为二进制(uint8_t)?

highcharts - Highchart 坐标轴保留 2 位小数

javascript - 为什么我的值(value)四舍五入(向上或向下)