v60DecimalBehavior

v60DecimalBehavior ビルド記述子オプションは、偶数の長さの DECIMAL 変数、MONEY 変数、または PACF 変数の精度を制御します。

バージョン 8 より前では、以下の状況では EGL がさまざまなターゲット・プラットフォームに対して DECIMAL 変数、MONEY 変数、および PACF 変数の精度を処理する方法に不整合がありました。

バージョン 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 です。

フィードバック