説明
この関数は、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