REMAINDER
函数返回 x
除以 y
的余数。
注意:
与 MOD 函数的区别为:
在用
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 的值的整数部分为偶数,不向前一位进位,当 x/y 的值的整数部分为奇数,向前一位进位。列如,ROUND(1.5)
\=2、ROUND(2.5)
\=2、ROUND(3.5)
\=4、ROUND(4.5)
\=4。
语法
REMAINDER (x, y)
参数
参数 | 说明 |
x,y | x 和 y 为数值型(NUMBER 、FLOAT 、BINARY_FLOAT 和 BINARY_DOUBLE )表达式。 |
返回类型
返回类型与 数值优先级高 的参数的数据类型相同。
示例
此示例显示了使用 MOD
以及 REMAINDER
函数计算 1.5/1 的余数的结果,请注意两个函数的区别。
执行以下语句:
SELECT MOD(1.5,1), REMAINDER(1.5,1) FROM DUAL;
查询结果如下:
+------------+------------------+
| MOD(1.5,1) | REMAINDER(1.5,1) |
+------------+------------------+
| 0.5 | -0.5 |
+------------+------------------+