一.数字函数(SQL,PL/SQL均可使用;返回值为数字类型)
1.CEIL(n) 返回>=数字n的最小整数;
SQL> DECLARE
2 v_ceil NUMBER(6,2);
3 BEGIN
4 v_ceil:=ceil(&no);
5 dbms_output.put_line(v_ceil);
6 END;
7 /
输入 no 的值: 1
原值 4: v_ceil:=ceil(&no);
新值 4: v_ceil:=ceil(1);
1
PL/SQL 过程已成功完成。
2.FLOOR(n) 返回<=数字n的最大整数;
SQL> DECLARE
2 v_floor NUMBER(6,2);
3 BEGIN
4 v_floor:=floor(&no);
5 dbms_output.put_line(v_floor);
6 END;
7 /
输入 no 的值: 1
原值 4: v_floor:=floor(&no);
新值 4: v_floor:=floor(1);
1
PL/SQL 过程已成功完成。
3.MOD(m,n) 返回m/n的余数,n=0时余数为m;
SQL> DECLARE
2 v_mod NUMBER(6,2);
3 BEGIN
4 v_mod:=mod(&no,&mun);
5 dbms_output.put_line(v_mod);
6 END;
7 /
输入 no 的值: 1
输入 mun 的值: 2
原值 4: v_mod:=mod(&no,&mun);
新值 4: v_mod:=mod(1,2);
1
PL/SQL 过程已成功完成。
4.ROUND(n,[m]) m为空,四舍五入至整数位;m<0,四舍五入至小数点n前位;m>0,四舍五入至小数点后n位;
SQL> DECLARE
2 v_round NUMBER(6,2);
3 BEGIN
4 v_round:=ROUND(&no);
5 dbms_output.put_line(v_round);
6 END;
7 /
输入 no 的值: 5.1314562
原值 4: v_round:=ROUND(&no);
新值 4: v_round:=ROUND(5.1314562);
5
PL/SQL 过程已成功完成。
SQL> DECLARE
2 v_round NUMBER(6,2);
3 BEGIN
4 v_round:=round(&no,&num);
5 dbms_output.put_line(v_round);
6 END;
7 /
输入 no 的值: 5.1314526
输入 num 的值: 1
原值 4: v_round:=round(&no,&num);
新值 4: v_round:=round(5.1314526,1);
5.1
PL/SQL 过程已成功完成。
5.SIGN(n) 返回检测数字的正负,n>0则返回-1;n=0返回0;n<0返回1;
SQL> DECLARE
2 v_sign NUMBER(6,2);
3 BEGIN
4 v_sign:=sign(&no);
5 dbms_output.put_line(v_sign);
6 END;
7 /
输入 no 的值: -1000
原值 4: v_sign:=sign(&no);
新值 4: v_sign:=sign(-1000);
-1
PL/SQL 过程已成功完成。
6.TRUNC(n,m) m<0,数字n截取至小数点的前m位;m>0,数字n截取至小数点的后m位;
SQL> DECLARE
2 v_trunc NUMBER(6,2);
3 BEGIN
4 v_trunc:=trunc(&no,&num);
5 dbms_output.put_line(v_trunc);
6 END;
7 /
输入 no 的值: 123.986
输入 num 的值: 1
原值 4: v_trunc:=trunc(&no,&num);
新值 4: v_trunc:=trunc(123.986,1);
123.9
PL/SQL 过程已成功完成。