setf()是追加标志字的函数,而flags()是设置标志字 ? fixed标志是以定点形式显示浮点数 ? ?
当有fixed标志时,说明数据按一定的位数输出,否则去掉fixed标志后,数据按原位输出---即小数最后面的0不显示
因此,使用时有两种情况:
(1)原位输出,这时应去掉fixed标志:?cout。unsetf(ios::fixed)
? ?????如0.1?便会输出0.1 ?
(2)设置小数点后的输出位数
? ????????分两步: ??????????????????????第一步---------???设置定位输出?cout。setf(ios::fixed) ? ??????????????????????第二步---------???设置输出精度?cout.precision(4) ? ?
如下面程序:
? ?
????#include?<iostream.h>?? ????#include?<iomanip.h>?? ????void?main(void)?? ????{?? ????cout.setf(ios::fixed);?? ????cout<<setprecision(2)<<(float)0.1<<endl;//输出0.10?? ????cout.unsetf(ios::fixed);?? ????cout<<setprecision(2)<<(float)0.1<<endl;?//输出0.1?? ????}?? ? ? ? ????fout<<rs<<‘/t‘<<‘/t‘<<dr_mean<<"(";?? ?????? ????fout.setf(ios::fixed);?? ?????? ?????fout<<dr_sd<<")"<<endl;?? ?????? ????fout.unsetf(ios::fixed);?? ?????? ?????fout<<‘/t‘<<‘/t‘<<mature_mean<<"(";?? ?????? ????fout.setf(ios::fixed);?? ????fout.precision(4);?? ?????????????????? ????fout<<mature_sd<<")"<<endl;?? ?????? ????fout.unsetf(ios::fixed);?? ?????? ?????fout<<‘/t‘<<‘/t‘<<cost_mean<<"(";?? ?????? ?????? ????fout.setf(ios::fixed);?? ????fout.precision(6);?? ?????? ?????? ?????fout<<cost_sd<<")"<<endl;?? ?????? ?????fout.unsetf(ios::fixed);?? ?
输出结果如下:
0.998836---原位?(0.000000)---六位
2746.2---原位
(99.7445)--四位
3.152--原位
(0.015522)--六位
本文使用?书画小说软件?发布,内容与软件无关,书画小说软件?更惬意的读、更舒心的写、更轻松的发布。
原文:http://www.cnblogs.com/shuilan0066/p/4032189.html