説明
この関数は、x を y で割ったときの剰余を返します。
注意
REMAINDER (x,y) 関数と MOD (x,y) 関数は、どちらも result=x-y*(x/y) という同じ公式を用いますが、x/y の計算方法が異なります。REMAINDER (x,y) 関数では ROUND(x/y) を使用し、MOD (x,y) 関数では FLOOR(x/y) を使用します。
REMAINDER 関数において、ROUND(x/y) の引数 x/y の小数部がちょうど 0.5 の場合、x/y の整数部が偶数のときは切り捨て、奇数のときは切り上げます。例えば、ROUND(1.5)=2、ROUND(2.5)=2、ROUND(3.5)=4、ROUND(4.5)=4 となります。
構文
REMAINDER (x, y)
パラメータの説明
パラメータ |
説明 |
|---|---|
| x | 被除数。数値型(NUMBER、FLOAT、BINARY_FLOAT および BINARY_DOUBLE)の式です。 |
| y | 除数。数値型(NUMBER、FLOAT、BINARY_FLOAT および BINARY_DOUBLE)の式です。 注意 パラメータ y は 0 にすることはできません。 |
戻り値の型
戻り値の型は、数値優先順位が高いパラメータのデータ型と同じです。
例
MOD 関数と REMAINDER 関数を使用して、1.5 を 1 で割ったときの剰余を返します。
obclient> SELECT MOD(1.5,1),REMAINDER(1.5,1) FROM DUAL;
+------------+------------------+
| MOD(1.5,1) | REMAINDER(1.5,1) |
+------------+------------------+
| .5 | -.5 |
+------------+------------------+
1 row in set