取整用的函数主要在usr/include > math.h内
一、 四舍五入取整
函数方法如下:
extern float roundf(float);
extern double round(double);
extern long double roundl(long double);
extern long int lroundf(float);
extern long int lround(double);
extern long int lroundl(long double);
举例:
double rpValue = round(1.1); // 1
double rpValue = round(1.5); // 2
double rpValue = round(-1.4); // -1
double rpValue = round(-1.5); // -2
二、向上取值整(向x轴右侧取整)
函数方法如下:
extern float ceilf(float x);
extern double ceil(double x);
extern long double ceill(long double x);
举例:
double rpValue = ceil(-1.1); // -1
double rpValue = ceil(-1.9); // -1
double rpValue = ceil(1.1); // 2
double rpValue = ceil(1.9); // 2
三、向下取值整(向x轴左侧取整)
函数方法如下:
extern float floorf(float x);
extern double floor(double x);
extern long double floorl(long double x);
举例:
double rpValue = floor(-1.1); // -2
double rpValue = floor(-1.9); // -2
double rpValue = floor(1.1); // 1
double rpValue = floor(1.9); // 1
四、取最近整数(即在x轴向趋近最近整数,中间取整)
这里有个比较特殊的点:如果是x.5,这个值和两边整数比是在x轴上的中间位置,它会取接近的(偶数)!
函数方法如下:
extern float nearbyintf(float x);
extern double nearbyint(double x);
extern long double nearbyintl(long double x);
extern float rintf(float x);
extern double rint(double x);
extern long double rintl(long double x);
extern long int lrintf(float x);
extern long int lrint(double x);
extern long int lrintl(long double x);
举例:
double rpValue = rint(-1.1); // -1
double rpValue = rint(-1.5); // -2 向左取偶
double rpValue = rint(-1.9); // -2
double rpValue = rint(0.1); // 0
double rpValue = rint(0.5); // 0 向右取偶
double rpValue = rint(0.9); // 1
double rpValue = rint(1.1); // 1
double rpValue = rint(1.5); // 2 向右取偶
double rpValue = rint(1.9); // 2