LoginSignup
4
3

More than 5 years have passed since last update.

JSONでInfinityを扱うには

Last updated at Posted at 2016-07-12

JSONの仕様書を読んでるのですが、
IEEE 754で定義されている InfinityNaN はJSONでは表現できず、
例えば

JSON.stringify(Infinity) // => "null"
JSON.parse("Infinity") // => エラー

となるのですが、仕様をよく読むと数値の表現範囲は実装に依るということで、
1E400 などの大きい数値は正確に表現できない代わりに適宜丸めたりされるようです。

実際Chromeで動かして Infinity になることが確認されました。

JSON.parse("1E400") // => Infinity

なので、JSONでどうしても Infinity を表したいときは、JSONを扱う処理系に合わせて
馬鹿でかい数を入れることによって一応は表現できることになります。

ただ、このような手法で NaN を表現する方法は思いつきませんでした。

なお、もう1つIEEE 754で定義されている -0 は表現できるみたいです。

JSON.parse("-0") // => -0
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3