# C/C++ 取整函数ceil(),floor()

#include <math.h> double floor(double  x );
float floorf(float x);
long double floorl(long double x);



double floor(double x);

double ceil(double x);

floor()是向负无穷大舍入，floor(-10.5) == -11；
ceil()是向正无穷大舍入，ceil(-10.5) == -10

1. /

//Test "/"
cout << "Test \"/\"!" << endl;
cout << "7   / 2   = " << 7/2 << endl;      //3
cout << "7   / 2.0 = " << 7/2.0 << endl;    //3.5
cout << "7.0 / 2   = " << 7.0/2 << endl;    //3.5
cout << "7.0 / 2.0 = " << 7.0/2.0 << endl; //3.5
cout << "7   / 3   = " << 7/3 << endl;      //2
cout << endl;

2. %
//Test "%"
cout << "Test \"%\"!" << endl;
cout << "9   % 3   = " << 9%3 << endl;      //0
cout << "9   % 4   = " << 9%4 << endl;      //1
//cout << "9.0 % 3   = " << 9.0%3 << endl;
//cout << "9   % 3.0 = " << 9%3.0 << endl;
cout << endl;

3. 四舍五入
//Test round()
cout << "Test \"四舍五入\"!" << endl;
double dRoundA = 1.4;
double dRoundB = 1.6;
double dRoundLowA = -1.4;
double dRoundLowB = -1.6;
double dRoundLowC = 0.0;
cout << dRoundA << " = " << RoundEx(dRoundA) << endl;         //1
cout << dRoundB << " = " << RoundEx(dRoundB) << endl;         //2
cout << dRoundLowA << " = " << RoundEx(dRoundLowA) << endl;   //-1
cout << dRoundLowB << " = " << RoundEx(dRoundLowB) << endl;   //-2
cout << dRoundLowC << " = " << RoundEx(dRoundLowC) << endl;   //0
cout << endl;

double RoundEx(const double& dInput)
{
double dIn = dInput;
if (dInput >= 0.0)    //???
{
return int(dIn + 0.5);
}
else
{
return int(dIn - 0.5);
}
}

4. ceil() 向上取整
//Test ceil() 向上取整
cout << "Test ceil() 向上取整!" << endl;
cout << "ceil 1.2 = " << ceil(1.2) << endl;      //2
cout << "ceil 1.8 = " << ceil(1.8) << endl;      //2
cout << "ceil -1.2 = " << ceil(-1.2) << endl;    //-1
cout << "ceil -1.8 = " << ceil(-1.8) << endl;    //-1
cout << "ceil 0.0 = " << ceil(0.0) << endl;      //0
cout << endl;

5. floor() 向下取整
//Test floor() 向下取整
cout << "Test floor() 向下取整!" << endl;
cout << "floor 1.2 = " << floor(1.2) << endl;    //1
cout << "floor 1.8 = " << floor(1.8) << endl;    //1
cout << "floor -1.2 = " << floor(-1.2) << endl; //-2
cout << "floor -1.8 = " << floor(-1.8) << endl; //-2
cout << "floor 0.0 = " << floor(0.0) << endl;    //0
cout << endl;

06-17 1万+
11-12 67

09-27 452
12-05 3628