方法一:库函数
round()
函数可以用于double
和float
类型的浮点数。它接受一个浮点数作为参数,并返回最接近的整数,四舍五入。对于double
和float
类型的输入,std::round
都会进行相应的四舍五入操作。
#include <iostream>
using namespace std;
#include <cmath> //使用这个库函数必须添加的头文件
int main() {
double number;
cin >> number;
// 对浮点数进行四舍五入
double rounded_number = round(number);
cout << rounded_number <<endl;
return 0;
}
方法二:
#include <iostream>
using namespace std;
int main() {
double d;
cin>>d;
int num=(int)d;
if(d>=0){
if(d-num>=0.5){
cout<<num+1;
}else{
cout<<num;
}
}else{
if(d-num>-0.5){
cout<<num;
}else{
cout<<num-1;
}
}
return 0;
}
先将浮点数强制转换成整型,通过这个转换的整型数与浮点数之间的差来判断需要“四舍”还是“五入”。
方法三:
#include <iostream>
using namespace std;
int main() {
double d;
cin >> d;
int num = static_cast<int>(d + 0.5);
cout << num;
return 0;
}
static_cast<int>在这里是一种强制类型转换,将double类型转化成int类型
方法三可以看作是方法二的升级版
为什么要+0.5?
因为:
3.2+0.5=3.7-->3
3.7+0.5=4.2-->4
对于小数部分,+0.5后:
如果需要“四舍”,则整数部分不变
如果需要“五入”,则整数部分+1