MOD は、次を満たす負以外の最小値 R を戻します。
(x - R)/y = n
n は、整数値です。 すなわち、R は y で割り切れるように、x から減算する 負でない最小値です。
|
結果 R は、引数と共通の基数およびスケールを持つ実数です。 結果が浮動小数点の場合は、精度は x および y の 大きい方になります。結果が固定小数点の場合は、精度は次の式で指定されます。
(min(n,p2-q2+max(q1,q2)),max(q1,q2))
(p1,q1) と (p2,q2) は、それぞれ x と y の精度であり、n には、FIXED DECIMAL の場合は N が入り、FIXED BINARY の場合は M が入ります。
x および y の位取り係数が異なる固定小数点の 場合は、R が計算される前に、小さい位取り係数の引数が大きい 位取り係数に変換されます。 変換が失敗すると、結果は不定になります。
結果の属性が FIXED BIN であり、1 つ以上のオペランドに属性 UNSIGNED FIXED BIN がある場合、以下の条件の両方が真でない限り、結果は SIGNED 属性を持ちます。
上記のいずれかの条件が true でない場合、UNSIGNED オペランドはそれぞれ SIGNED に変換されます。 オペランドが大きすぎる場合は、変換によって以下が行われます。
次の例では、MOD 組み込み関数と REM 組み込み関数を対比しています。
REM 組み込み関数については、REMを参照してください。