是否存在一个可以包含JavaScript或内置函数的bignum库,如

<script type="text/javascript" src="the_bignum_library.js"></script>




我认为我的用户宁愿在网页中输入数字并等待7秒钟才能得到结果,而不是下载可执行文件并单击一堆“此可执行文件可能会损害您的计算机”警告屏幕以进行安装。

我已经考虑过自己基于http://github.com/silentmatt/javascript-biginteger或http://www.mainebrook.com/john/fun/euler.html。还是建议您从JavaScript调用Java Bignum库(例如apfloat)?

评论

我不太了解您的问题,首先您需要一个bignum库,然后自己提供两个库? :)

当我说“精确理性算术”时,我的意思是“可以精确表示1/7之类的数字”。据我所知,我提到的两个库无法做到这一点-它们只能处理整数。

好吧,我不好看草率:)

有一个BigRational.js库,用于精确的有理算术。

这是一个非常有用的问题,因此我尝试挽救它。不明确的图书馆要求是不合适的;标准库解决方案应在SO上蓬勃发展。

#1 楼

更新(2019-08-19):BigInt现在是Firefox和Chrome的一部分;您不再需要库:




 const bigInt1 = 1111111111111111111111111111111n;
const bigInt2 = BigInt("1111111111111111111111111111111")
console.log((bigInt1 + bigInt2)+"") 





原始答案:

如果需要任意精度的十进制数,请使用Javascript-bignum,因为它是正确且快速的。

评论


这个答案正在Meta上讨论。

–halfer
18年7月25日在22:09

没有启发性的讨论。我对这个问题的答案似乎“违法”感到很沮丧,这对我而言似乎是不合法的。

–最大
19年6月14日在3:47

那是在所有Firefox版本上还是从特定版本开始的版本?

– DRP
1月17日17:05

#2 楼

大数字。

评论


这将非常适合我的应用程序。 (尽管从技术上讲,该库不能完全代表1/7,但它对于我的应用程序来说足够接近)。

– David Cary
2010年6月21日在8:03

该库的内部表示形式是将数字存储为十进制字符串。对于较大的数量和操作,这非常慢。

– jnnnnn
2012年3月14日在1:08

Babiker,请原谅我取消了绿色的“已答复”复选标记并将其交给jnnnnn。 jnnnnn的答案实际上确实代表了1/7。

– David Cary
2012年6月5日下午16:35

严重的是有一个错误。尝试alert(new BigNumber(100).divide(1));

–起搏器
13-10-28在15:29



不用客气,但是这个多虫的图书馆将对更多的人造成微妙的伤害,而不是帮助。

–起搏器
13年10月31日在16:56