结论:2种写法
int main(){
const double d = 12.345678901234;
// 1.precision(val)
cout.precision(2);
cout<<d<<endl;
cout<<fixed<<d<<endl;
// 2.setprecision(val)
cout<<fixed<<setprecision(3)<<d<<endl;
}
output:
12
12.35
12.346
解释
precision
作用:
1.返回当前精度 precision()
2. 将精度设置为给定的精度(数字的长度)。返回之前的精度。 precision(new_precision)
作用于全局。
例子:
int main()
{
const double d = 12.345678901234;
cout << std::cout.precision() << "\n\n";
cout << d << '\n';
cout.precision(8);
cout << d << '\n';
}
output:
6
12.3457
12.345679
setprecision
作用:
作用与precision()相同。
作用于全局。
例子:
int main(){
double d=12.24324;
cout<<setprecision(2)<<d<<endl;
cout<<setprecision(3)<<d<<endl;
}
output:
12
12.2
fixed
作用:
实现无科学记数法的小数点后6位。
与precision()/setprecision()配合,可将其变为控制小数点后需要输出的位数。
作用于全局。
例子:
int main(){
double d=0.000000024324123243454564;
cout<<d<<endl;
cout<<fixed<<d<<endl;
cout.precision(8);
cout<<d<<endl;
}
output:
2.43241e-08
0.000000
0.00000002