算術演算

算術演算を次の表に示します。

表 1. 算術演算
演算 従来型の構文 自由形式構文
絶対値 %ABS (式の絶対値)
加算 ADD (加算) + 演算子
除算 DIV (除算) / 演算子または %DIV (商の戻り整数部分)
除算の剰余 MVR (剰余の転送) %REM (戻り整数剰余)
乗算 MULT (乗算) * 演算子
平方根 SQRT (平方根) %SQRT (式の平方根)
減算 SUB (減算) - 演算子
ゼロにして加算 Z-ADD (ゼロにして加算) (許可されていない)
ゼロにして減算 Z-SUB (ゼロにして減算) (許可されていない)

算術演算の例については、図 1 を 参照してください。

算術演算の指定にあたっては次のことを忘れないでください。
  • 算術演算を実行できるのは、数値 (数値サブフィールド、数値配列、数値 配列要素、数値テーブル要素、名前付き数値定数、数値形象定数、および 数値リテラルを含む) に対してだけです。
  • 一般に、算術演算はパック 10 進数形式で実行されます。 このことは、 算術演算を実行する前に、フィールドが最初にパック 10 進数形式に変換 され、次に結果のフィールドに結果を入れる前に (必要があれば) 指定の 形式に戻されることを意味しています。
    ただし、以下の例外に注意してください。
    • すべてのオペランドが符号なしの場合には、符号なしの数値で算術演算が 行われます。
    • すべてのオペランドが整数、または整数と符号なしの数字 の場合には、整数の数値で算術演算が行われます。
    • いずれかのオペランドが浮動の場合、残りのオペランドは浮動に 変換されます。

    ただし、DIV 命令は、その演算にパック 10 進数または浮動形式を 使用します。 整数および符号なしの数値演算の詳細については、整数および符号なしの演算を 参照してください。

  • 小数点の位置合わせはすべての算術演算で行われます。 切り捨てが行われても、結果のフィールドの小数点の位置には影響がありません。
  • 算術演算の結果、結果のフィールドに入っていたデータは置き換えられます。
  • 演算項目 1 と演算項目 2 は、それらが結果のフィールドと同じである 場合を除いて、算術演算によっては変更されません。
  • DIV および MVR で条件付け標識を使用する場合には、ユーザーの責任において DIV 命令が MVR 命令の直前に行われることを確認してください。DIV の条件付け標識によって直前の DIV 命令が実行されないときに MVR 命令が 実行されると、好ましくない結果が起こる場合があります。
  • 算術演算での配列の使用方法については、演算での配列の指定を 参照してください。