简介:
floor函数
ceil函数
round函数
trunc()函数
简介:
Floor() 不大于自变量的最大整数
Ceil() 不小于自变量的最大整数
Round() 四舍五入到最邻近的整数
TRUNC函数用于对值进行截断。
从函数说明中可以看出:
Floor()会取不大于自变量的最大整数,这样自变量是3.1或3.9是没有区别的,返回都是3;自变量是-2.1或-2.9也是没有区别的,返回都是-3;Ceil()会取不小于自变量的最大整数,这样自变量是3.1或3.9,返回都是4;自变量是-2.1或-2.9,返回的都是-2;Round()函数,才是我们需要的四舍五入的函数,因为它会返回离自变量最近的整数,这个返回的整数可能大于也可能小于原来的数,但是一定是离它最近的那个整数。
floor函数
/* floor example */#include <stdio.h> /* printf */#include <math.h> /* floor */int main (){printf ( "floor of 2.3 is %.1lf\n", floor (2.3) );printf ( "floor of 3.8 is %.1lf\n", floor (3.8) );printf ( "floor of -2.3 is %.1lf\n", floor (-2.3) );printf ( "floor of -3.8 is %.1lf\n", floor (-3.8) );return 0;}
Output:floor of 2.3 is 2.0floor of 3.8 is 3.0floor of -2.3 is -3.0floor of -3.8 is -4.0
ceil函数
/* ceil example */#include <stdio.h> /* printf */#include <math.h> /* ceil */int main (){printf ( "ceil of 2.3 is %.1f\n", ceil(2.3) );printf ( "ceil of 3.8 is %.1f\n", ceil(3.8) );printf ( "ceil of -2.3 is %.1f\n", ceil(-2.3) );printf ( "ceil of -3.8 is %.1f\n", ceil(-3.8) );return 0;}
Output:ceil of 2.3 is 3.0ceil of 3.8 is 4.0ceil of -2.3 is -2.0ceil of -3.8 is -3.0
round函数
/* round vs floor vs ceil vs trunc */#include <stdio.h> /* printf */#include <math.h> /* round, floor, ceil, trunc */int main (){const char * format = "%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n";printf ("value\tround\tfloor\tceil\ttrunc\n");printf ("-----\t-----\t-----\t----\t-----\n");printf (format, 2.3,round( 2.3),floor( 2.3),ceil( 2.3),trunc( 2.3));printf (format, 3.8,round( 3.8),floor( 3.8),ceil( 3.8),trunc( 3.8));printf (format, 5.5,round( 5.5),floor( 5.5),ceil( 5.5),trunc( 5.5));printf (format,-2.3,round(-2.3),floor(-2.3),ceil(-2.3),trunc(-2.3));printf (format,-3.8,round(-3.8),floor(-3.8),ceil(-3.8),trunc(-3.8));printf (format,-5.5,round(-5.5),floor(-5.5),ceil(-5.5),trunc(-5.5));return 0;}
Output:value round floor ceil trunc----- ----- ----- ---- -----2.32.02.03.02.03.84.03.04.03.05.56.05.06.05.0-2.3 -2.0 -3.0 -2.0 -2.0-3.8 -4.0 -4.0 -3.0 -3.0-5.5 -6.0 -6.0 -5.0 -5.0
trunc()函数
格式:TRUNC(n1,n2),n1表示被截断的数字,n2表示要截断到那一位。n2可以是负数,表示截断小数点前。注意,TRUNC截断不是四舍五入。
SQL> select TRUNC(15.79) from dual;
TRUNC(15.79)
15
SQL> select TRUNC(15.79,1) from dual;
TRUNC(15.79,1)
15.7
SQL> select trunc(15.79,-1) from dual;
TRUNC(15.79,-1)
10