Oracle 取整、四舍五入及格式化 Round/Floor/Ceil

原文地址:http://kb.cnblogs.com/a/1552790/

  1. SELECT ROUND( number, [ decimal_places ] ) FROM DUAL  

说明:

number : 将要处理的数值

decimal_places : 四舍五入,小数取几位,不填默认为0

Sample :

  1. select round(123.456) from dual;              结果: 123   
  2. select round(123.456, 0) from dual;          结果: 123   
  3. select round(123.456, 1) from dual;          结果: 123.5   
  4. select round(123.456, 2) from dual;          结果:123.46   
  5. select round(123.456, 3) from dual;          结果: 123.456   
  6. select round(-123.456, 2) from dual;         结果:-123.46  

取整(向下取整):

  1. select floor(5.534) from dual;   
  2. select trunc(5.534) from dual;  

上面两种用法都可以对数字5.534向下取整,结果为5.
如果要向上取整 ,得到结果为6,则应该用ceil

  1. select ceil(5.534) from dual;  

保留N位小数(不四舍五入):

  1. select trunc(5.534,0) from dual;   
  2. select trunc(5.534,1) from dual;   
  3. select trunc(5.534,2) from dual;  

结果分别是 5,5.5,5.53,其中保留0位小数就相当于直接取整了。

数字格式化:

  1. select to_char(12345.123,'99999999.9999') from dual;  

结果为12345.123

  1. select to_char(12345.123,'99999999.9900') from dual;  

小数后第三第四为不足补0,结果为12345.1230

  1. select to_char(0.123,'99999999.9900') from dual;   
  2. select to_char(0.123,'99999990.9900') from dual;  

结果分别为 .123, 0.123

<!-- end: entry -->

猜你喜欢

转载自sangei.iteye.com/blog/1455599