为什么我不能让javascript的大数字库工作?

时间:2013-05-02 13:59:50

标签: javascript math

在javascript(大于2 ^ 53)上寻找一个可以处理大数字的库我检查了几个问题(JavaScript large number library?Is there a bignum library for JavaScript?)然后用{{3}修改了一些问题}和javascript-bignum.js,但事实是我无法表示奇数,因为两者都是

Big(9007199254740995);

SchemeNumber.fn["string->number"](9007199254740995);

返回

9007199254740996

而不是

9007199254740995

正如我所料。

那么,我做错了吗?或者没有办法表示大的奇数?

1 个答案:

答案 0 :(得分:8)

当你这么说时

Big(9007199254740995)

你没有给bignum图书馆一个机会!您的数字文字首先由纯JS解析,其中该数字不能完全表示。您只需使用

即可看到此信息
window.alert(9007199254740995);

警告9007199254740996

为了让您选择的bignum库成功代表此数字,您需要将其作为字符串传递,例如:

Big('9007199254740995')

应该给你这个确切的数字,作为一个bignum。