JavaScript有没有一个小数运算库?

29

有没有一个成熟的JavaScript库可以进行十进制基数的数学计算,可能是任意精度的?

编辑:我想在涉及浮点相关问题和二进制浮点不适宜时,用作参考页面的替代方案: http://floating-point-gui.de/


服务器。说真的,你需要它干什么?服务器端JS?一些特殊的数学?在画布上进行3D绘制?...这可能有助于朝正确的方向搜索。 - Boldewyn
3
好问题,但已有重复。请参见:http://stackoverflow.com/questions/287744/good-open-source-javascript-math-library-for-floating-point-operations - Anthony
5
@Anthony那个问题是关于浮点数的,而这个问题(我认为)是关于无限精度定点数的。你链接的第二个问题显然不相关。 - Pointy
1
还有一个类似的问题:http://stackoverflow.com/questions/744099/javascript-bigdecimal-library,但是它已经一年了。我对任何更新很感兴趣。 - Daniel Vassallo
常见用例:类似电子表格的用户界面中的货币操作。 - Pointy
我以前也找过类似的东西,所以我决定为自己写一个非常简单的类(只有30行代码)。我在内部数学计算中使用整数和移位操作,因此它的精度有限,但对于货币计算来说,它可以正常工作。 - Lukasz Korzybski
3个回答

19
作为它们的作者,我推荐使用bignumber.jsbig.js,这是一个“用于任意精度算术的小型、快速的JavaScript库,支持十进制数字”。如果需要更成熟的库,也可以考虑使用ICU4J BigDecimal

1
后者实际上是另一个答案中提到的库,现在在github上有了一个更加永久的家。 - Michael Borgwardt
bignumber.js现在已经在jsdelivr CDN上了。 - Xotic750

6
有一个Java BigDecimal 类的“移植”版(我想在这里: http://freshmeat.net/projects/js_bigdecimal/ )已经存在很长时间了。我很久以前看过它,似乎有点繁琐和庞大,但(如果是我想的那个)它已被用作某些密码工具的一部分,所以它的工作情况还不错。

因为密码学是可能需要这种东西的领域,所以这是搜寻这种包的好方法。

编辑:感谢@Daniel(问题评论)提供这个较旧的SO问题:https://stackoverflow.com/questions/744099/javascript-bigdecimal-library


BigDecimal端口的官方主页似乎是这个:http://stz-ida.de/html/oss/js_bigdecimal.html.en - 我甚至无法从freshmeat上找到下载它的方法。 - Michael Borgwardt
啊,这个在谷歌搜索中随处可见。它已经存在很长时间了。 - Pointy
1
BigDecimal的链接出现了404错误。看起来该网站已经重新设计了。新链接:http://stz-ida.de/index.php?option=com_content&view=article&id=18&Itemid=32 - spoulson
1
@spoulson,那个新链接也是404错误... :S - Abel

1

既然似乎没有提到,这里是另一个。我自己还没有使用过(但会尝试后更新帖子)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接