Oracle的取整函数

作者:iamlaosong

oracle涉及到取整的函数主要有4个,两个单参数的(ceil和floor),两个双参数的(trunc和round)。双参数不仅可以取整,也可以取到任一位小数,甚至可以取到任一位整数。这些函数参数为正数时比较好理解,为负数时就要好好想一想了,不要用错了,好在用于负数的机会不多。

1、ceil(n)取整(大),取比真值大的最小整数,注意正负数的取值:

      如ceil(251.0001)=252,ceil(-251.0001)=-251,ceil(-251.9999)=-251;

      select ceil(251.0000001) from dual;

      结果:252

2、floor(n)取整(小),取比真值小的最大整数,注意正负数的取值:

      如floor(251.9999)=251,floor(-251.9999)=-252,floor(-251.0001)=-252;

这两个函数功能正好相反。

记忆恨简单:ceil,天花板,在上面,自然往高了取值;floor,地板,自然往低了取值。

3、trunc(n,p)取指定位置部分(截取),p指定截取数值的位置,p为0时表示截取整数部分,可以或略:

      如trunc(251.0001)=251,trunc(-251.0001)=-251,trunc(-251.9999)=-251;

      当p为正数时,表示截取时保留小数的位数;当p为负数时,表示截取时保留整数的位置,例如:

      trunc(251.1234,2)=251.12,trunc(251.1234,-2)=200,trunc(251.1234,-1)=250;

4、round(n,p)取指定位置部分(四舍五入),同trunc类似,p指定截取数值的位置,p为0时表示截取整数部分,可以或略:

      round(251.34)=251,round(251.56)=252,round(-251.34)=-251,round(-251.56)=-252

      当p为正数时,表示截取时保留小数的位数;当p为负数时,表示截取时保留整数的位置,例如:

      round(251.1234,2)=251.12,round(251.1234,-2)=300,round(251.1234,-1)=250;

      四舍五入时只考虑绝对值,不用关心正还是负。

记忆方法:trunc,截取,相当于刀切到那儿是哪儿,不拖泥带水;round,圆,把后面的值圆回来,所以四舍五入。

 

下面是四个函数的取整案例:

select trunc(251.75),round(251.75),floor(251.000001),ceil(251.000001) from dual;

结果:251,252,251,252

select trunc(-251.75),round(-251.75),floor(-251.000001),ceil(-251.000001) from dual;

结果:-251,-252,-252,-251

5、最后顺便说一下取余函数mod(n,m),n除以m后的余数,例如:mod(91,30)=1
一般n,m是整数,不过,小数也可以,例如:
select mod(90.32,26.3) from dual;
结果是:11.42

 

 

 

  

  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值