使用setprecision函数时必须要包含#include<iomanip>头文件。而fixed、showpoint和precision函数则没有必要。
第一种情况:控制输出数的有效位数。
方法一:使用setprecision(n)函数。该函数的作用是控制输出流显示浮点数的数字个数,n表示要显示的个数。但是这样的方法当小数末尾部分为0时是显示不出来的,此时就要用到showpoint。
语法:在输出语句之前声明语句cout.setf(ios::showpoint)就行了或者使用cout<<showpoint<<1.0<<endl;该语句配合setprecision(n)函数就可以控制要输出数字个数了。
例如:cout<<showpoint<<setprecision(5)<<1.2<<endl;//输出结果为1.2000
方法二:即使用cout.precision(n)代替setprecision(n)函数即可,区别在于使用cout.precision函数不需要包含头文件<iomanip>。
第二种情况:控制输出数保留小数点后几位。
解决方法:先使用setprecision(n)函数或者调用cout.precision(n),在输出语句之前声明语句cout.setf(ios::fixed)或者使用cout<<fixed<<1.0<<endl;
例如:cout<<fixed<<setprecision(5)<<1.2<<endl;//输出结果为1.20000
注意事项:为cout设置了showpoint或者fixed属性值后,还原默认需要自己操作。
具体操作为:调用cout.unsetf(ios::fixed);调用cout.unsetf(ios::showpoint)或者cout<<noshowpoint<<1.3<<endl;