代码片段:C++保留小数精度

在C++的编程中,总会遇到浮点数的处理,有时我们需要保留小数后几位。

在ANSI C中,我们可以使用 printf("%.2f",a);
在C++中,我们可以通过使用setprecision()来实现这个需求。
setprecision()位于头文件<iomanip>
使用方式如下

1
cout << setprecision(2) << a <<endl;

但是,如果a的值为0.40001,输出的结果为a=0.4,后面第二位的0被省略了。
如果需要实现自动补0,需要在cout之前进行补0的定义。代码如下:

1
2
cout.setf(ios::fixed);
cout << "a=" <<fixed<< setprecision(2) << a <<endl; //输出a=0.40

这样,我们就可以得到0.40了。如果想要关闭掉补0,只需要对fixed进行取消设置操作。

1
2
cout.unsetf(ios::fixed);
cout << "a=" << setprecision(2) << a <<endl; //输出a=0.4

输出结果就又变回a=0.4了。