[OSGeoJapan-discuss] Mapserverの緯度経度の精度について

hayashi @ apptec.co.jp hayashi @ apptec.co.jp
2013年 3月 6日 (水) 09:07:23 PST


誰が何と言おうともboiledorange73様

検証ありがとうございます。

> JISX3010 を読んだところ、"%lf"は"%f"と同じようです。
見てみましたが、同じとは書いてあるところは見つからなかったです。
しかし、%のあとのlf表記についてはdoubleと書いてます。
これはそもそもscanf の記載をprintfにもっていってるのが敗因なのか。
「double の書式指定に "%lf" を使った場合の動作は未定義・・」
と書いている人もいるので、コンパイラ依存なのでしょう。
C99だけなんですね?BCCでは上手くいってるんですが、VC2010では6桁ですね。

JISX3010のリテラルの解釈については、
----------------------
f,F  浮勤小数点数を表す double 型の実引数を[-]ddd.ddd形式の 10 進表記に変換す
る。このとき,小数点文字の後の数字の個数は, 精度の指定に等しい。精度が省略された
場合,精度を6とする。
精度に0が措定され, かつ#フラグが指定されていない場合, 小数点文字を出力しない。小
数点文字を出力するときには、その前に必ず1個以上の数字を出力する。この変換は、適
切なけた数へ値の丸めも行う。
-----------------------

とありました。

いずれにせよ、

Jeff!
 Your MS4W shoud need to fix this problem. ;)


(2013/03/06 22:22), boiledorange73 wrote:
> 林 様
> 
>> "%lf"で受けた場合は、
> 
>> 桁数はC99の規定の最大まで文字列化されますね。
> 
> これは、試してみたけどうまくいきませんでした。
> 
> JISX3010 を読んだところ、"%lf"は"%f"と同じようです。
> 
>> ただし、vsprintfのに渡したポインタのバッファがあふれないようになっていればですが。
> 
> 見直したら vsnprintf() でした。お詫びして訂正します。
> # バッファオーバーランを気にすると、
> # この二つは全く違いますから。
> 
> ただ vsnprintf() をサポートしない場合には vsprintf() を使うようです。
> 
>> 以前、WMSの画像にOracleから取得した座標のフィーチャを
> 
>> 重ねてみたところ微妙にずれていたので、
>> WMSでもやはり同じことをしていると思われます。
> 
> WMSの場合は、GDALとかGDとかCairoとかに回りますので、
> "%f"とはまたべつかなと思います。
> 
> あと、私の場合は
> PostGISとWMSの比較でしたが、
> 気になったことはなかったです。
> # 元データの有効桁数の問題が効いてくるので
> # あくまで個人的感想です。
> 
> 
> 
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> 


-- 
--------------------------------------------------
OSGeo.JP
 http://www.osgeo.jp
--------------------------------------------------
APPLIED TECHNOLOGY CO.,LTD.

HIROFUMI HAYASHI
hayashi at apptec.co.jp

ZIP:531-0074
RISE88 Honjo-Higash 1-1-10
Osaka City

  Tel: 06-6373-6101
  Fax: 06-6373-6108
--------------------------------------------------


More information about the OSGeoJapan-discuss mailing list