PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
5269 99/02/26 21:04:17 RE(4):切り上げ誤差の件、対処方法がわかりました(たぶん) By M.M
5259 99/02/26 18:19:04 RE(3):PB5.0.03: 少数部を切り上げしたいのですが... By M.M
5245 99/02/26 10:08:51 RE(2):PB5.0.03: 少数部を切り上げしたいのですが... By n.mibu
5241 99/02/25 23:04:12 RE(1):PB5.0.03: 少数部を切り上げしたいのですが... By M.M
5239 99/02/25 20:28:30 PB5.0.03: 少数部を切り上げしたいのですが... By n.mibu

カテゴリ:PowerBuilderの不具合?
日付:1999年02月26日 21:04 発信者:M.M
題名:RE(4):切り上げ誤差の件、対処方法がわかりました(たぶん)

「n.mibu」さん、こんばんは。

>>題名にもありますように、数値の少数部について「切り上げ」を行いたいのですが、
>>不正に切上げられてしまいます。
>>具体的には、Number型の2項目 \'suryo\' と \'tanka\' を使用してDWの計算カラムに
>> \'Ceiling(suryo * tanka)\'と記述しているのですが、
>>(中略)
>>ただし、混乱させて申し訳ないのですが、実際に当方で起っている内容は、
>>例3)suryo = 1.2 tanka = 420 のときは \'504\' を返します。(正常)
>>例4)suryo = 1.1 tanka = 420 のときに \'463\' を返します。(正しくは \'462\')
>>
>>です。こうなるとさっぱり原因がわかりません。何か情報がございましたらどうかよろしく
>>お願いします。

アシストHPの「PowerBuilder FAQ」をチェックしたところ、データウィンドウで浮動小数点
演算をする時は、有効桁数を考慮するようにという趣旨の記述がありました。

そこで、データウィンドウに以下の関数を計算カラムにおいてみました。

<誤差が発生する関数>
Ceiling( suryo * tanka )
suryo=1.1 tanka=420 → 463

<誤差が発生しないと思われる関数> 有効桁数を小数点以下2位と仮定
Ceiling( Round(suryo * tanka,2) )
suryo=1.1 tanka=420 → 462

私の環境(NT4.0 + PB5.0.04)では、結果OKでした。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS Oracle SQL*Net 2.3
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.