是否存在一个可以包含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)?
#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
评论
我不太了解您的问题,首先您需要一个bignum库,然后自己提供两个库? :)当我说“精确理性算术”时,我的意思是“可以精确表示1/7之类的数字”。据我所知,我提到的两个库无法做到这一点-它们只能处理整数。
好吧,我不好看草率:)
有一个BigRational.js库,用于精确的有理算术。
这是一个非常有用的问题,因此我尝试挽救它。不明确的图书馆要求是不合适的;标准库解决方案应在SO上蓬勃发展。