控制cout输出浮点数的精度

在输出(打印)浮点数(float,double)时,有时候我们不希望输出小数点后太多位,例如对于圆周率pi=3.1415926~,我们希望输出3.14,这个时候就需要控制输出精度了。
  我们知道,在C风格的输出中,可以直接在printf()的占位符中设置

printf("%.2f",pi)   //输出3.14
printf("%.3f",pi)   //输出3.142

那么C++风格的cout该如何设置呢?这里需要用到C++的标准库iomanip,“io”代表input-output,"manip"代表manipulate(控制),顾名思义,就是输入输出控制的库。我们用一段代码展示其具体用法

#include
...
cout<

上述代码中,第一行包含头文件iomanip,第二行的作用是使得setprecision()控制的是小数点后的位数,若这一行被注释,则setprecision()控制的是整个浮点数的精度(即后面两个cout都输出3.1),第四行cout的输出结果表明setprecision()会对之后的cout产生作用。
  以上讨论的cout<<的情况,对于ofstream<<同样适用。

你可能感兴趣的:(控制cout输出浮点数的精度)