2013-05-02 53 views
4

寻找一个图书馆在javascript上使用大数字(大于2^53)我检查了几个问题(JavaScript large number library?Is there a bignum library for JavaScript?),然后用javascript-bignum.jsbig.js调整了一点点,但事情是,我是不能代表奇数,因为这两个为什么我无法获得JavaScript的大数字库来工作?

Big(9007199254740995); 

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

回报

9007199254740996 

而不是

9007199254740995 

为我所期望的。

那么,我做错了什么?或者无法表示大的奇数?

+10

*通常*在处理大数字库时,您需要避免使用本地数字字面值,以免“破坏”您的大数字值为“预先打破”的值。尝试如果“大”(“9007199254740995”);'更好。 – 2013-05-02 14:07:44

+3

一些例子,使用字符串输入和使用小数字的计算结果:http://jsfiddle.net/LrtrL/3/ – apsillers 2013-05-02 14:15:00

回答

8

当你说这

Big(9007199254740995) 

你是不是给BIGNUM库的机会!您的数字文字首先由纯JS解析,其中该数字不能完全表示。你可以简单地用

window.alert(9007199254740995); 

哪些警报9007199254740996

为了让您选择BIGNUM库成功地代表了这个数字,你需要把它作为一个字符串,例如:

Big('9007199254740995') 

应该让你这个确切的数字,作为BIGNUM。

+0

非常感谢,我没有想过。 – Vier 2013-05-02 21:12:43

相关问题