急!!高手帮忙解决下一个c++编程问题。
如果setprecision(n)与setiosflags(ios::fixed)一起使用,则可以控制小数点右边的位数。Setiosflags(ios::fixed)就是用固定的方式来表示实数。
如果与SEIOSNAGs (IOS:: Scientific)一起使用,可以控制指数表示中的小数位数。Setiosflags(ios::scientific)是实数的指数表示。
例如,下面的代码分别用浮点、定点和指数表示一个实数:
//*********************
//** ch2_1.cpp **
//*********************
# include & ltiostream.h & gt
# include & ltiomanip.h & gt//使用格式控制器。
void main()
{
双倍金额= 22.0/7;
cout & lt& lt金额& lt& ltendl
cout & lt& ltset precision(0)& lt;& lt金额& lt& lt恩德尔
& lt& ltset precision(1)& lt;& lt金额& lt& lt恩德尔
& lt& ltsetprecision(2)& lt金额& lt& lt恩德尔
& lt& lt设定精度(3)& lt金额& lt& lt恩德尔
& lt& ltsetprecision(4)& lt金额& lt& ltendl
cout & lt& ltsetios flags(IOs::fixed);
cout & lt& ltsetprecision(8)& lt金额& lt& ltendl
cout & lt& ltsetiosflags(ios::scientific)
& lt& lt金额& lt& ltendl
cout & lt& lt设定精度(6);//重置为原始默认设置
}
运行结果如下:
3.14286
三
三
3.1
3.14
3.143
3.14285714
3.14285714e+00
该程序在32位机上运行。
在浮点表示的输出中,setprecision(n)表示有效位数。
第1行的输出值之前没有设置有效位,所以流的有效位默认值为6:第二个输出设置有效位为0,C++的最低有效位为1,所以视为1的有效位:第3-6行的输出按照设置的有效位输出。
在定点表示的输出中,setprecision(n)表示小数位数。
第7行的输出与setiosflags(ios::fixed)一起使用。所以setprecision(8)设置小数点后的位数,而不是总位数。
以指数形式输出时,setprecision(n)表示小数位数。
在第8行,输出用setiosflags(ios::scientific)的索引表示。它的有效数字跟随最后设置的值8。