質問: JSON.parse(response); ``` 返ってくるJSON "timestamp":1527648847353 ParseしたJSON timestamp=1.527648847353E12 ### 補足 timestampはUNIXタイムのミリ秒です。 比べた感じ、小数点をとって、末尾のE12をカットすればいいような気もしますが、 本質ではない気がするので・・・。 よろしくお願いいたします。 ### 追記 使用しているブラウザとバージョンは下記のとおりです。 Google Chrome 67.0.3396.62
回答: > > "timestamp":1527648847353 > > > 32ビット整数表現できないため、(オーバーフローしている) > > var json = JSON.parse(response); > > > これでjsonは浮動小数点数になってしまって、指数表現になるのは表示の際の変換によるものじゃないでしょうか。 わざわざ数値変換しないで文字列のまま操作するほうがいろいろ面倒はないと思われますが。 Javascriptの浮動小数点数は53ビットの精度があるということなんで、質問の桁数の数値程度なら誤差なく浮動小数点数に格納できるようです JavaScriptの整数の精度が保たれるのは9007199254740991まで ということで、ここはjsonの変数のまま持っていても問題はなさそうです。 問題は文字列変換ですが、json.toFixed() でやってみてはどうでしょうか。