急!!高手帮忙解决下一个c++编程问题。

使用setprecision(n)控制输出流中显示的浮点数的数量。C++默认流输出数值的有效位是6。

如果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。