- - PR -
DB2でDOUBLE型をROUND
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2006-02-21 10:38
お世話になります。db2 8.0です。
DB2のROUNDの結果がおかしい 上のスレッドで触れた内容なのですが、対応方法で迷っています。 処理的にはDOUBLE型同士の計算を四捨五入するのですが、DOUBLEを そのままROUNDしても欲しい結果が得られないので、一度DECIMALで 必要な桁数に切ってROUNDする方法を取る方法があることをIBMさん かどこかのサイトで知りました。 試してみたSQLの列出力部です。 dec(round(double(TBL1.TEST1) / double(TBL1.TEST2), 2),4,2) end as DECTEST 計算結果によってはオーバーフローしてしまいます。 dec(round(double(TBL1.TEST1) / double(TBL1.TEST2), 2),4,3) end as DECTEST のように小数部を3桁にするとオーバーフローしないのですが、データによっては オーバーフローの危険があるのかと思っています。 同じような状況で対応された方がいらっしゃいましたら ご教示いただけると幸いです。 |
|
投稿日時: 2006-02-21 14:54
自己レスです。
DOUBLEのところを全部DECIMALに変更してみると うまくいってるっぽいです。 とりあえずこれで対応したいと思います。 他の方法をご存知の方がいらっしゃいましたら 引き続きお願いします。 |
1
