9.22.OPNQRYFの除算エラーの回避 |
OPNQRYFでも除算エラーの扱いは、マニュアルに有りました。 DB2 AS/400 用 データベース・プログラミング バージョン 4 資料番号 SD88-5035-00
というわけですが、ここのポイントは、%MAXですね。これが、QRYにもあればなあ。 (A*B) / (B*B)は、分母分子をBで約分すれば、A / Bに戻りますね。従って、同値として扱っているようですが、小数以下がA、Bにある時、内部の計算は大丈夫かなと思います。でもマニュアルで言っているのだから、大丈夫でしょう。 また、「先行するゼロの数は、B の小数部の桁数の 2倍にする必要があります」とは、たとえば、Bが偶然、0.01の場合、%MAXの中が、(0.01*0.01 0.00001)で、(0.0001 0.00001)のうち、最初の値を使いたいからです。B*B=Bの2乗なので、(x/100)*(x/100)=(x/10000)なのです。そこで、0の数を2倍にする(よって、小数部分は、全部でそれプラス+1桁)必要なのですね。勿論、Bが0ならば、%MAX(0.0000 0.00001)なので、0.00001が選択されるわけです。よく考えられています。 |
You are at K's tips-n-kicks of AS/400
|
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||