データ項目に数値を割り当てるときには、MOVE ステートメントではなく COMPUTE ステートメントを使用することを考慮してください。
Move w to z Compute z = w
ほとんどの場合、上の例の 2 つのステートメントは同じ効果を持ちます。しかし、MOVE ステートメントは、切り捨てを伴う割り当てを実行します。ただし、DIAGTRUNC コンパイラー・オプションを使用して、数値受け取り側で切り捨てが起こる可能性のある MOVE ステートメントについてコンパイラーが警告を出すように要求することができます。
ただし、実行時に左側の有効数字が失われる場合、COMPUTE ステートメントを使用するとこの条件を検出し、それに対処することができます。COMPUTE ステートメントの ON SIZE ERROR 句を使用すると、コンパイラーはサイズ・オーバーフロー条件を検出するコードを生成します。条件が起こると、ON SIZE ERROR 句内のコードが実行され、z の内容は未変更のままになります。ON SIZE ERROR 句が指定されていない場合には、割り当ては切り捨てを伴って実行されます。MOVE ステートメントの ON SIZE ERROR サポートはありません。
COMPUTE ステートメントを使用して、算術式または組み込み関数の結果をデータ項目に割り当てることもできます。以下に、その例を示します。
Compute z = y + (x ** 3) Compute x = Function Max(x y z)