JSONから取得した数値が指数表現になる

Go down

JSONから取得した数値が指数表現になる

投稿 by hosaka on 2018-06-26, 9:22 am

JSONから取得してオブジェクト型にしたのですが、数値が指数表現になってどうも丸められている様でした。
調べた結果、longintを超える場合にこの様になる様です。
4D内部では現在これは処理できませんが状態を維持したいのですがなにか方法はないでしょうか?

avatar
hosaka

投稿数 : 123
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

Re: JSONから取得した数値が指数表現になる

投稿 by miyako on 2018-06-26, 11:18 am

jsonでは数値の指数表現が有効とされており,
数値は整数ではなく実数で扱われるので,

https://www.json.org

本来,long64をJSONデータとして扱うのはNG(まちがっている)のはずです・・が,
確かにそのような値を(テキストではなく数値で)返すREST APIを何度かみたことがあります。

そのような場合,残念ですが,
JSON Parseは使えない(数値は必ず8ビットREALで扱われるため)ということになるかと思います。

外部APIとの連携でJSON/INT64が送受信される,ということでしょうか。







miyako

投稿数 : 261
登録日 : 2016/07/05

トップに戻る Go down

Re: JSONから取得した数値が指数表現になる

投稿 by hosaka on 2018-06-26, 11:35 am

JSON自体に制限があるとは読み取れなかったのですがどの部分でしょうか?
Javascriptでは、9007199254740991までとい言うのは見つけたのですが、
4Dはこの数値でも指数表現になってしまいます。

以前からフィールドに一応、64bit整数とかフロートがあるのでこちらが後々使える様になるのかと思っていたのですがダメっぽいですね。
取得した値をそのまま維持してくれるだけでも良いのですが現状は他の手段を考えてみます。
avatar
hosaka

投稿数 : 123
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

Re: JSONから取得した数値が指数表現になる

投稿 by miyako on 2018-06-26, 12:01 pm

おっしゃるとおりですね!

JSONのNumberが何ビットだとか,有効桁数がいくつだとかいう制限はありませんでした。

これは4D側(REAL)の問題です。

miyako

投稿数 : 261
登録日 : 2016/07/05

トップに戻る Go down

Re: JSONから取得した数値が指数表現になる

投稿 by hosaka on 2018-06-26, 12:38 pm

念のためですが、v17のRリリースあたりでC_FLOATやC_LONG64の実装をお願いします。 clown
avatar
hosaka

投稿数 : 123
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

Re: JSONから取得した数値が指数表現になる

投稿 by hosaka on 2018-09-04, 1:46 pm

hosaka wrote:念のためですが、v17のRリリースあたりでC_FLOATやC_LONG64の実装をお願いします。 clown

4DForumのフィーチャーリクエストにも同じリクエストが書き込まれてましたね。要望が多いみたいなので早期の実装を期待できるかな。
avatar
hosaka

投稿数 : 123
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

Re: JSONから取得した数値が指数表現になる

投稿 by Sponsored content


Sponsored content


トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可