PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
3876 98/11/06 12:42:01 RE(2):Truncate関数バグの原因 By M.M
3875 98/11/06 10:54:20 RE(1):PB5: Truncate関数がバグってるようです。 タイ国からのHELPです。 By あすかちゃんの父
3873 98/11/05 20:48:35 PB5: Truncate関数がバグってるようです。 タイ国からのHELPです。 By red

カテゴリ:PowerBuilderの不具合?
日付:1998年11月06日 12:42 発信者:M.M
題名:RE(2):Truncate関数バグの原因

「red」さん「あすかちゃんの父」さん、こん☆☆は。

>>  PowerBuilderにて「数値の切り捨て機能[truncate(a,2)]を使うと、
>>時々予期していない変な数値が返ってきます。 
>>例えば、\"10.20\"の値が\"10.19\"の様に変わってしまいます。  
>>対応案を教えて下さい。

>>         ・数値のデータ型はNUMBER型です。
>>         ・データウィンドウ内の処理です。

>NUMBER型というと、Oracleのデータベースから検索してきた数値
>データをデータウィンドウで表示しているのですね?
>Oracleで問題のカラムの定義はどうなっていますか?
>また、\"10.20\"と表示されているカラムは、表示書式が\"0.00\"とか
>に定義されていませんか?

>これは推測ですが、おそらく浮動小数点の数値データの精度落ちが
>原因ではないでしょうか? (以下、略)

「あすかちゃんの父」さんのコメントに追記しますと、原因はまさしく
\"浮動小数点演算の精度誤差\"です。詳しく書くとキリが無いのですが、人間の扱う
10進数の演算を、コンピュータが扱う2進数で行う際に発生する必須の問題です。
(大学とかで情報処理の勉強をすると教えてくれます。「あすかちゃんの父」さんの
 コメントに簡潔にまとめてあります)

データウィンドウ内部では演算をdouble型で行うため、カラムの型をdecimalにしても、
この問題は発生します。
(スクリプト上でdecimal型(10進数)で計算すれば誤差の問題はクリアできます)

パワーソフト側(今はアシスト社ですが)でも、この問題は認識しています。
詳しくは、パワーソフトHPの[Support]-[Trouble Shooting]-[PowerBuilder FAQ]
を参照して下さい。(対処方法も記載されています)

パワーソフトHP: http://www.powersoft.co.jp

PS.タイでPBを使っているのですか。素晴らしい!
   以前に、多国籍企業で同一のシステムを動かすため、ツールとしてPBを検討しているという
   相談を受けたことがあります。PBでは複数言語で使用するシステムの開発手法が確立してい
   るので、今後はこういうプロジェクトが増えるかもしれないですね。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS DBMSクライアントソフトウェアなし
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS その他
WebServer (記載なし)

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