2013-05-02 50 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

相關問題