Oracle的取整函数

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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

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

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

  select ceil(251.0000001) from dual;

  结果252

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

结果251252251252

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: oracle