v60DecimalBehavior ビルド記述子オプションは、偶数の長さの DECIMAL 変数、MONEY 変数、または PACF 変数の精度を制御します。
バージョン 8 より前では、以下の状況では EGL がさまざまなターゲット・プラットフォームに対して DECIMAL 変数、MONEY 変数、および PACF 変数の精度を処理する方法に不整合がありました。
- 変数に値が割り当てられるとき
- mathLib.precision() が変数の精度を戻すとき
バージョン 6 以前の動作をシミュレートするには、v60DecimalBehavior ビルド記述子オプションを YES に設定します。
値
v60DecimalBehavior ビルド記述子オプションには、以下の値があります。
- YES
- バージョン 6 以前で標準として定義されていた動作を使用します。
偶数の長さの DECIMAL 変数、MONEY 変数、または PACF 変数の精度は、最大長まで 1 だけ増分されます。これらの変数の最大長については、数値型を参照してください。
- NO (デフォルト)
- バージョン 6 より後で標準だった動作を使用します。すべての変数の精度は最初に宣言されているとおりです。
デフォルト値
v60DecimalBehavior のデフォルト値は、
vagCompatibility ビルド記述子オプションに依存します。
- vagCompatibility が YES に設定されている場合は、v60DecimalBehavior のデフォルト値は YES です。
- vagCompatibility が NO に設定されている場合は、v60DecimalBehavior のデフォルト値は NO です。
例
以下の例では、
v60DecimalBehavior は YES に設定されています。
myVar DECIMAL(8,2);
myInt INT = mathLib.precision(myVar); // myInt = 9
v60DecimalBehavior を NO に変更すると、myInt は 8 になります。
互換性
表 1. v60DecimalBehavior の互換性に関する考慮事項| プラットフォーム |
問題 |
| JavaScript 生成 |
オプションは無視されます。振る舞いは、常にデフォルトの v60DecimalBehavior = NO です。 |