計算フィールドの表示値と取得値の誤差を防ぐ

PowerBuilder Tips

方法

数値型の計算フィールドは内部的に Double 型 (浮動小数点型) のデータとして保持しています。

そのため GetItemDecimal 関数で値を取得すると、浮動小数点数の影響から Decimal 型の変数の宣言で有効桁数を指定していない場合に Double 型の内部データがそのまま Decimal 型の値に代入されて、表示値と取得値とで誤差を含んだ値となることがあります。

この誤差を防ぐためには Decimal 型の変数を宣言する際に有効桁数を指定してください。

例えば、1.44 のセルに対して Round 関数で小数点 1 桁目を四捨五入する計算フィールドは

1.4 と表示されますが、GetItemDecimal 関数で値を取得して有効桁数を指定していない Decimal 型の変数にセットすると 1.39999999999999984 となり誤差が生じます。

この場合、有効桁数 1 の Decimal 型で宣言した変数にセットすると 1.4 となります。

この他に計算フィールドの Double 型 (浮動小数点型) に関連した Tips がありますのであわせてご確認ください。

計算フィールドで Truncate 関数を使用して正しい計算結果を取得する

 

Tips情報

プロダクト :PowerBuilder

バージョン :2019R3

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?