c 语言浮点数向上取整,(转)C/C++ 取整函数ceil(),floor(),向上取整,向下取整...

#include  double floor(doublex);

float floorf(floatx);

long double floorl(long doublex);

double floor(double x);

double ceil(double x);

使用floor函数。floor(x)返回的是小于或等于x的最大整数。

如:     floor(10.5) == 10    floor(-10.5) == -11

使用ceil函数。ceil(x)返回的是大于x的最小整数。

如:     ceil(10.5) == 11    ceil(-10.5) ==-10

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值