一般来说c++四舍五入有两种种方法

1:正数加上0.5,负数减去0.5

代码实现:

#include <iostream>

using namespace std;

int round1(double number) 
{
    return (number>0.0)?(number+0.5):(number-0.5);
}

然后直接调用就可以了;

如果要对浮点数按位四舍五入,就要换种方式。比如要对1.12345保留4位小数,先乘以10000(10^4,几位小数就是几次方),然后加0.5,得11235,再除以10000,得到1.1235。代码如下:

#include<bits/stdc++.h> //万能函数头

using namespace std;
 
double round3(double number,int bits){
    for(int i=0;i<bits;++i){
        number*=10;
    }
    number=(long long)(number+0.5);
    for(int i=0;i<bits;++i){
        number/=10;
    }
    return number;
}
 
int main(){
    double x;
    int n;    
    cin >> x >> n;
    cout << round3(x,n);
}

2:用函数

setprecision()函数

cout << fixed << setprecision(a); a表示舍几位,cout<<fixed 表示用一般的方式输出浮点数。

ps : setprecision()函数在iomanip函数库

代码如下:

#include<iostream>
#include<iomanip>

using namespace std;

int main(){
	
	double num,jw;
	cin >> num;
	cin >> jw;
	
	cout << fixed <<setprecision(jw)<<num;
	
	return 0;
} 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐