C++中怎么控制小数的位数
#include<iostream>碰橘举
#include"math.h"
#include<iomanip>
usingnamespacestd;
intmain(){
intm;
doublen,sum=0;
//intqiuhe(inti,intn);
cin>>n>>m;
//a=n;
for(inti=0;i<m;i++){
sum+=n;
n=sqrt(n);
}
cout<<fixed<<setprecision(2)<<sum;//控制小数点后两位输出
return0;
}
扩展资料
C++控制小数笑碧点伍雹后的精度
#include"stdafx.h"
#include<iostream>
#include<iomanip>
usingnamespacestd;
intmain()
{
floatvalue=324.79213;
cout<<setprecision(4)<<value<<endl;
cout<<fixed<<setprecision(4)<<value<<endl;
getchar();
getchar();
return0;
}
2024-07-18 广告
如果要在程序中对一个浮点数变量进行四舍五入到小数点后d位,可以这么写:
#include <cmath>
template<typename real>
inline real round(const real &n,const size_t &d)
{
return (long long)((long double)n*pow(10,d))/pow(10,d);
}
如果要输出一个精确到小数点后d位的浮点数,可以这么写:
#include <cstdio>
int main()
{
//...
float x; printf("%.3f\n",x);
//输出float类碧稿型的变量x四舍五入到小数点后3位的值
double 首岩y; printf("%.4lf\n",y);
//输出double类型的变量y四舍五入到小数点后4位的值
long double z; printf("%.5Lf\n",z);
//输出long double类型的变量z四舍五入到小数点后5位的值
//另外注意,32位windows平台对long double的stdio不是很支持
return 0;
}
或者:
#include <iomanip>
#include <iostream>
int main()
{
//...
float x; double y; long double z;
std::cout<<setiosflags(ios::fixed)<<setprecision(3)<<x<<endl;
//输出float类型的变量x四舍五入到小数点后3位的值
std::cout<<setiosflags(ios::fixed)<<setprecision(4)<<y<<endl;
//输出double类型的变量y四舍五入到小数点后4位的值
std::cout<<setiosflags(ios::fixed)<<setprecision(5)<<z<<endl;
//输出long double类型的变量z四舍五入到小数者慧御点后5位的值
//可以看到,namespace std下的iostream的兼容性十分优越
return 0;
}