C/C++ 取整函数ceil(),floor()
2016-02-05 09:38
411 查看
#include <math.h> double
floor(double x);
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
不得不说点:/ % 四舍五入 向上取整(ceil()) 向下取整(floor)
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;
floor(double x);
float floorf(float x); long double floorl(long double x);
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
不得不说点:/ % 四舍五入 向上取整(ceil()) 向下取整(floor)
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;
相关文章推荐
- 【干货】国外程序员整理的 C++ 资源大全
- 细数C++和C的差别
- UVa 227 Puzzles
- enum在C语言中的使用
- Vector的某个构造函数
- c++ 关键字: volatile
- c++ 关键字: explicit
- C语言允许以下划线开头的函数存在
- C++ MFC实现基于RFID读写器的上位机软件
- neuq oj 1009C++统计字符 C++
- 学习笔记------关于字符串结束符'\0'、字符串定义方法
- “\”C++中的换行符
- C语言 乘法 大数相乘
- neuq oj 1008 公约公倍C++
- leetcode226题 题解 翻译 C语言版 Python版
- [CCF]201312-2 ISBN号码
- leetcode237题 题解 翻译 C语言版 Python版
- 一起talk C栗子吧(第一百二十回:C语言实例--线程属性)
- neuq oj 1007 计负均正 C++
- sublime3 + mingw + sublimeclang 搭建c++编译环境