コンパクトなデータ文字列をJSONに解析するシステムをセットアップしました。IDを格納するために19桁の数字を使用しています。残念ながら、17桁を超える数値はparseFloat()
、最後の数桁を丸めます。
これにより、データ文字列全体が切断されます。これを修正できますか?
たとえば、8246295522085275215
に変換され8246295522085276000
ます。どうしてこれなの?
コンパクトなデータ文字列をJSONに解析するシステムをセットアップしました。IDを格納するために19桁の数字を使用しています。残念ながら、17桁を超える数値はparseFloat()
、最後の数桁を丸めます。
これにより、データ文字列全体が切断されます。これを修正できますか?
たとえば、8246295522085275215
に変換され8246295522085276000
ます。どうしてこれなの?
JavaScriptには、IEEE754倍精度浮動小数点である数値型が1つだけあります。つまり、最大52ビットの精度があり、小数点以下15桁より少し多くなります。
それ以上の精度が必要な場合は、bignumライブラリを使用するか、文字列を操作する必要があります。
JavaScriptの数値は、特定の値よりも大きい場合、精度が低下します。
http://www.hunlock.com/blogs/The_Complete_Javascript_Number_Referenceによると、整数は15桁までしか信頼できませ9 * 10^15
ん(正確には)。
これらのいずれかを試してください1.文字列を使用します2.数値を2つに分割し、小さい部分を配列に保存します3.Bignumライブラリ4.可能であれば小さい数値を使用します