SQL中的3个取整函数(Ceiling、Floor和Round)的区别

1.Ceiling()函数

    Ceiling,英文中,是天花板的意思,有上限的意思,所以,此函数是向上取整,它返回的是大于或等于函数参数,并且与之最接近的整数。

 示例:

  1 SELECT CEILING(123.45), CEILING(-123.45), CEILING(0.0);  

   结果:

2.Floor()函数

   floor,在英文中,是地面,地板的意思,有下面的意思,所以,此函数是向下取整,它返回的是小于或等于函数参数,并且与之最接近的整数。

   floor函数在数学中又称高斯函数。

   示例:

 1 SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR(0.0);  

   结果:

3.Round()函数

   round,在英文中是有大约,环绕,在某某四周,附近的意思,所以,可以取其大约的意思,在函数中是四舍五入。

   不过,round函数与上述两个函数有区别。区别是,round函数可以有2个或者3个参数。

   (1)round函数有2个参数,round(numberic_expression,length)

     numberic_expression表示数字表达式;

      length表示数值表达式精确到的位数。

      length是正值,表示精确到小数点往右的位数;

      length是负值,表示精确到小数点往左的位数;

   示例:

1 --length为正
2 SELECT ROUND(123.45,1), ROUND(-123.45,1), ROUND(0.0,1); 
3 --length为负
4 SELECT ROUND(123.45,-1), ROUND(-123.45,-1), ROUND(0.0,-1); 

   结果:

  (2)round函数有3个参数,round(numberic_expression,length,function)

         nunberic_expression和length含义同上;

        function数据类型必须是整型(tinyint,smallint,int)

        (a). function=0(默认是零),round函数功能依旧;

       (b).function !=0,表示round函数精确到length位数,不对后面数位进行四舍五入,直接截掉。

    示例:

1 --function默认是0
2 SELECT ROUND(123.45,1), ROUND(-123.45,1), ROUND(0.0,1);
3 --function人为设定为0
4 SELECT ROUND(123.45,1,0), ROUND(-123.45,1,0), ROUND(0.0,1,0);
5 --function人为设定为非零数字1,length为正
6 SELECT ROUND(123.45,1,1), ROUND(-123.45,1,1), ROUND(0.0,1,1);
7 --function人为设定为非零数字1,length为负
8 SELECT ROUND(123.45,-1,1), ROUND(-123.45,-1,1), ROUND(0.0,-1,1);

结果:

三个函数的英文定义

 CEILING ( numeric_expression )This function returns the smallest integer greater than, or equal to, the specified numeric expression.

 FLOOR ( numeric_expression ): This funcion returns the largest integer less than or equal to the specified numeric expression.

ROUND ( numeric_expression , length [ ,function ] ):This function returns a numeric value, rounded to the specified length or precision.

上述3个取整函数,是个通用函数,不仅在SQL中,在各种编程语言中都有应用。

可以根据需要去检索相关语言领域的文献。

参考文献:

1.Ceiling()

2.FLOOR()

3.Round()

4.取整函数

 

 
posted @ 2022-06-03 20:42  美人她爹  阅读(7307)  评论(0编辑  收藏  举报