8

コンパクトなデータ文字列をJSONに解析するシステムをセットアップしました。IDを格納するために19桁の数字を使用しています。残念ながら、17桁を超える数値はparseFloat()、最後の数桁を丸めます。

これにより、データ文字列全体が切断されます。これを修正できますか?

たとえば、8246295522085275215に変換され8246295522085276000ます。どうしてこれなの?

http://jsfiddle.net/RobertWHurst/mhZ7Q/

4

3 に答える 3

13

JavaScriptには、IEEE754倍精度浮動小数点である数値型が1つだけあります。つまり、最大52ビットの精度があり、小数点以下15桁より少し多くなります。

それ以上の精度が必要な場合は、bignumライブラリを使用するか、文字列を操作する必要があります。

于 2011-11-03T00:06:38.193 に答える
3

JavaScriptの数値は、特定の値よりも大きい場合、精度が低下します。

http://www.hunlock.com/blogs/The_Complete_Javascript_Number_Referenceによると、整数は15桁までしか信頼できませ9 * 10^15ん(正確には)。

于 2011-11-03T00:01:46.347 に答える
1

これらのいずれかを試してください1.文字列を使用します2.数値を2つに分割し、小さい部分を配列に保存します3.Bignumライブラリ4.可能であれば小さい数値を使用します

于 2013-11-23T02:31:33.033 に答える