計算フィールドの表示値と取得値の誤差を防ぐ
2021/12/03
方法
数値型の計算フィールドは内部的に 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