- PR -

小数フィールドの値について

投稿者投稿内容
extream
ベテラン
会議室デビュー日: 2005/12/26
投稿数: 83
投稿日時: 2006-12-28 16:28
ひろれいさんTetraさん、回答ありがとうございます。

to_char(-123.12,'FM9,999.999') では、
-.12
の場合、整数部の0が負荷されませんでした。(そのまま、-.12と表示されました。)

そこで、Tetraさんが言われたように、
 ・to_char(日本座標値X,'FM990.999')
としたら、期待値を取得できました。
が、原理をイマイチ把握していないので、上記式について調査してみます。
(FMって初めてなので。。。(−−;)


みなさんのアドバイスのおかげで、とりあえずの段階までいけました。
ありがとうございました m(__)m
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-12-28 16:50
詰めが甘い・・・orz

Tetra さん、フォローありがとうございますm(_ _)m
extream
ベテラン
会議室デビュー日: 2005/12/26
投稿数: 83
投稿日時: 2006-12-28 17:02
いろいろなテストをしていたら、1つ問題を見つけました。

number(5.2)フィールドが処理対象の場合
※ to_char(field,'FM990.99'))で値を取得する。

OKパターン
-.12 → -0.12
-23.2 → -23.2

NGパターン
 −2 → -2. (「-2」として取得したい。)
0 → 0.  (「0」 〃)


上記のように、整数のみの場合に小数点が付加されてしまいました。
 ・小数点以下の桁数がない場合、小数点をつけない
という制御も同時に行うことってできるでしょうか?
(DECODEと併用など複雑なSQLになってしまうでしょうか?)
extream
ベテラン
会議室デビュー日: 2005/12/26
投稿数: 83
投稿日時: 2006-12-29 13:42
結局、C#側で対応することにしました。

OracleReaderで処理しているので、
 StringBuilder data = new StringBuilder()
data.Append( reader[0] );
とようにすると、
 -.12→"-0.12"
と変換してくれました。

まぁ、処理速度が出ないかもしれませんが、とりあえず上記の方法で対応するようにします。
みなさま、いろいろ助言いただきありがとうございました。



スキルアップ/キャリアアップ(JOB@IT)