数字函数不多:
ROUND(arg1):四舍五入保留整数。
arg1:数字类型。原数字。
arg2:整数类型。小数点保留的位数。
SQL> select round(1256.564,2) from dual;
ROUND(1256.564,2)
-----------------
1256.56
SQL> select round(1256.564) from dual;
ROUND(1256.564)
---------------
1257
ROUND(arg1,arg2):四舍五入指定小数的值。
arg1:数字类型。原数字。
arg2:整数类型。小数点保留的位数,可以是一个负数。负数则表示指定整数的位置。
SQL> select round(1256.564,-2) from dual;
ROUND(1256.564,-2)
------------------
1300
SQL> select round(1256.564,-1) from dual;
ROUND(1256.564,-1)
------------------
1260
可以看出这俩个语句,无论是取整还是取小数,round函数都是带有四舍五入的规则。
从这里可以看出,我们可以将小数点的位置看为0,左边为负数,右边为正数。以小数点为分界线。
TRUNC(arg1,arg2):截断指定小数的值,不做四舍五入处理。
arg1:数字类型。原数字。
arg2:整数类型。小数点保留的位数,可以使一个负数。负数则表示指定整数的位置。
SQL> select trunc(1256.564,1) from dual;
TRUNC(1256.564,1)
-----------------
1256.5
SQL> select trunc(1256.564,-1) from dual;
TRUNC(1256.564,-1)
------------------
1250
TRUNC(arg1):四舍五入保留整数。
arg1:数字类型。原数字。
arg2:整数类型。小数点保留的位数。
SQL> select trunc(1256.564) from dual;
TRUNC(1256.564)
---------------
1256
由此可见,trunc函数和round函数恰恰相反,trunc函数是截取的意思,不会有四舍五入的规则。是多少就是多少,体现了大公无私啊。。。。但是和round相同的是都是从小数点为界点,左为负,右为正。
MOD(arg1,arg2):取余。
arg1:数字类型。被除数。
arg2:数字类型。除数。
SQL> select mod(9,4) from dual;
MOD(9,4)
----------
1