Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1825562
  • 博文数量: 323
  • 博客积分: 5970
  • 博客等级: 大校
  • 技术积分: 2764
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-03 23:13
文章分类

全部博文(323)

文章存档

2018年(2)

2017年(11)

2016年(10)

2015年(27)

2014年(2)

2013年(30)

2012年(197)

2011年(44)

分类: Oracle

2012-05-17 20:20:39

用oracle sql对数字进行操作: 取上取整、向下取整、保留N位小数、四舍五入、数字格式化

取整(向下取整): 
select floor(5.534) from dual;
select trunc(5.534) from dual;
上面两种用法都可以对数字5.534向下取整,结果为5.


如果要向上取整 ,得到结果为6,则应该用ceil
select ceil(5.534) from dual;

 


四舍五入: 
SELECT round(5.534) FROM dual;
SELECT round(5.534,0) FROM dual;
SELECT round(5.534,1) FROM dual;
SELECT round(5.534,2) FROM dual;
结果分别为 6,  6,  5.5,  5.53

 


保留N位小数(不四舍五入): 
select trunc(5.534,0) from dual;
select trunc(5.534,1) from dual;
select trunc(5.534,2) from dual;
结果分别是 5,5.5,5.53,其中保留0位小数就相当于直接取整了。

 


数字格式化: 
select to_char(12345.123,'99999999.9999') from dual;
结果为12345.123

select to_char(12345.123,'99999999.9900') from dual;
小数后第三第四为不足补0,结果为12345.1230

select to_char(0.123,'99999999.9900') from dual;
select to_char(0.123,'99999990.9900') from dual;
结果分别为 .123, 0.123


阅读(1999) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

woaiyaou2017-05-29 14:30:31

Oracle 小数点前零丢失的问题
1.问题起源
   oracle 数据库字段值为小于1的小数时,使用char类型处理,会丢失小数点前面的0
     例如0.35就变成了.35
2.解决办法:用to_char函数格式化数字显示
  select to_char(0.338,\'fm9999999990.00\') from dual;
    结果:0.34
  这里重点要看 fm9999999999.99,表示整数部分最多10位,小数部分2位,fm表示去 掉转位字符串后前面的空格,不加fm,0.34前面会有空格的.