!--a11y-->

ビジネスアプリケーションの計算には、パック数値を使用します。プログラム属性 固定小数点演算は、パック数値による計算に影響します。
プログラム属性 固定小数点演算 を設定しないと、型 P 項目は小数点以下桁数のない整数として解釈されます。TYPES 命令または DATA 命令の DECIMALS オプションで指定する小数点以下桁数は、WRITE 命令で項目が書式設定される方法に影響します。

DATA: PACK TYPE P DECIMALS 2.
PACK = '12345'.
WRITE PACK.
プログラム属性固定小数点演算属性を設定していないと、出力は以下のようになります。
123.45
プログラム属性固定小数点演算属性を設定していると、出力は以下のようになります。
12,345.00
固定小数点演算属性を設定すると、算術演算で小数点以下桁数も考慮されます。ABAP では、パック数値による計算で、内部計算機能と同じ算術を使用します。一時結果は最大 31 桁まで ( 小数点の前後) を使用して計算されます。そのため、型 P 項目を使用するときは、常に固定小数点演算属性を設定する必要があります。

DATA: PACK TYPE P.
PACK = 1 / 3 * 3.
WRITE PACK.
固定小数点演算属性を設定しなかった場合、結果は 0 になります。これは、整数精度で計算が実行されるので、結果が内部的に 0 に丸められるためです。
プログラム属性 固定小数点演算 を設定すると、除算結果が最大 31 桁までの精度で 0.333333333333333333333333333333 として内部的に保存されるので、結果は 1 になります。
