直入主题
C++种浮点数有以下四种取整方式:ceil()、floor()、round()、int()
ceil() floor() round()都在cmath头文件下定义
每种方法之间都有些许的差异(废话)
话不多说,直接总结
x为浮点数(整数也可以)
floor(x) 向下取整,取小于等于x的整数;
ceil(x) 向上取整,取大于等于x的整数;
round(x) 四舍五入取整;
int(x) 向0取整,取近0端整数;
代码&执行结果
相信不少人都想看.5到底是被舍了还是被入了(?),满足你们,先看结果!
【浮点数取整结果】正如每个函数的功能所述。图中num表示测试的数字,每列依次是num,floor(num),ceil(num),round(num),int(num)。
代码部分如下:
#include <iostream>
#include <cmath>
#include <vector>
#include <iomanip>
using namespace std;
int main()
{
const int gap = 8;
//整数
//vector<float> nums = { 4, 3, 2, 1, 0, -1, -2, -3, -4 };
//小数(浮点数)
vector<float> nums = {1.0, 1.2, 1.5, 1.8, -1.0, -1.2, -1.5, -1.8};
//太长了就分行写了
cout << setw(gap) << "num";
cout << setw(gap) << "floor";
cout << setw(gap) << "ceil";
cout << setw(gap) << "round";
cout << setw(gap) << "int" << endl;
//num取整
for (auto num : nums) {
cout << setw(gap) << num;
cout << setw(gap) << floor(num);
cout << setw(gap) << ceil(num);
cout << setw(gap) << round(num);
cout << setw(gap) << int(num) << endl;
}
return 0;
}