2014-01-22 177 views

回答

39

在JavaScript中本地處理21位精確數字是不可能的。

的JavaScript只有一個種類數的: 「號碼」,這是一個IEEE-754 Double Precision( 「雙重」)值。因此,JavaScript中的parseFloat等效於其他語言中的「解析雙精度」。

然而,許多/「雙」 提供的精度16個顯著位數(十進制),並在一些這樣讀取與21位數字失去5個至少顯著位數。

對於更多精度(或準確度)必須使用「大數字」庫;

的信息可以作爲IEEE 「雙重」,其可以不完全編碼所有小數的值,但that's another question編碼時會丟失..

+0

我有解析一個沒有任何小數位的21位數字。 BigInteger和BigNumber只能精確地解析多達16位數字。但是我有一個比這個更大的數字,我需要精確地解析它。請建議。語法高度讚賞的建議。謝謝。 –

+0

@PriyeshShah您需要以*字符串*開始,並將其傳遞給BigInteger/BigNumber進行分析。只要你在JavaScript中有一個* number *值,那麼它就會受到上面的限制 - 也就是說,它已經*已經失去了不太有效的數字。 – user2864740

相關問題