最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

9.21.QRYの除算エラーの回避

[ Previous ] [ HOME ] [ Upper ] [ Next ]


QRYの計算式で、比率などを出すために、

RATIO     (FLD001 * 100) / FLD002                  

としたことは、ありますよね。もし、FLD002が0でも、++++と結果表示するだけですが、このRATIOを「分類キー指定」にすると、F5を押しても、「除算エラー」とエラーメッセージが出て、リストを表示さえしてくれません。(算術のルール違反の結果をキーの値として、ソート出来ないのです。)

正確な結果を求めなくてもいいのならば、

RATIO     (FLD001 * 100 * FLD002) / (FLD002 * FLD002 + 0.0000001)                  

で回避できます。

要は、限りなく0に近くて、0でない数字を、分母に足すのです。これで、上記のエラーは回避出来ます。

b_upd.gif (283 バイト)念のため、結果のフィールドは桁指定すること。でないと、すごい小数以下が出ますよ。きっと、分かるよね。

b_debug.gif (341 バイト)実は、上記の例は、全体の中の分子の割合を、出すものだったので、分母=0(空集合)ならば、必ず、分子も0のはずです。全体が無いのだから、ある固体の数の割合もなにも無いのです。しかし、OPNQRYFの除算エラー回避をみて、わり算は割合以外でも使うことに、はたと気づきました。もし、分子が有数だとすると、÷ 0.0000001は  × 10000000 と同じなので、ものすごい桁の値が出ます。(実は、プログラムのバグで気づきました。データレコードで分子部分をセットして、分母をセットし忘れたのです。)そこで、やはり、OPNQRYFに見習って、上記のように修正しました。これなら、まあ、デバッグ用に分子が有数でも、0になるので、うまくいきます。また、通常の場合も、きちんと計算されていました。それから、勿論、分母=0をレコード選択で、除外してもいいのです。ただ、レコードがそこで、除外されてしまうので、全体の件数がでなかっり、分母0でも、他のフィールドの値を見たい場合、上記の方法を取ります。

でも、ちょっと、正確性に問題があるので、正確な数字を求めるときは、使わないでください。デバッグなどに限ってください。


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

給料前でお金がない・・ 給料前でお金がない・・ 独自ドメインの取得をするなら
[PR] | 花粉症債務整理中国SEO対策消費者金融SEO車 買取テンプレート沖縄旅行免許合宿二輪引越しプレゼントゴルフ会員権留学レーシックマッサージFX投資信託くりっく365アフィリエイトFXホームページ制作デイトレードハワイ旅行タイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島Hawaii hotelsHawaii Activitiesbhhrハワイホテルテキスト広告
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行 - タイムシェア - ホテル 予約
無料ホームページ - 携帯ホームページ - 無料ホームページ作成 - レンタルサーバー - ブログ - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - プーケット ホテル - 海外旅行 - 格安国際電話 - レップチェッカー - ホノルルマラソン - サイトパトロール - 誹謗中傷 - 学校裏サイト監視