注册 登录
编程论坛 C++教室

初学者求问格式控制符.

TinyGeorge 发布于 2011-01-29 23:14, 619 次点击
1.void main()
{
const double e=2.718281828;
cout<<setprecision(10)<<e<<endl;

cout<<setiosflags(ios::fixed);
cout<<setprecision(9)<<e<<endl
    <<setprecision(8)<<e<<endl;
   
cout<<setiosflags(ios::scientific)<<e<<endl;
}

2.void main()
{
const double e=2.718281828;
cout<<setprecision(10)<<e<<endl;

cout<<setiosflags(ios::scientific)<<e<<endl;

cout<<setiosflags(ios::fixed);
cout<<setprecision(9)<<e<<endl
    <<setprecision(8)<<e<<endl;
}

输出:
1.
2.718281828
2.718281828
2.71828183
2.7182818
2.
2.718281828
2.7182818280e+00
2.71828183
2.7182818

1,2只是将cout<<setiosflags(ios::scientific)<<e<<endl;换了个位置,输出结果却不同了,求解。。。
6 回复
#2
rjsp2011-01-29 23:37
fixed
#3
TinyGeorge2011-01-29 23:39
回复 2楼 rjsp
fixed怎样...?
#4
VFleaKing2011-02-01 22:05
setiosflags(ios::scientific)的效果体现在后面的语句上,因此它的位置很重要,能对后面的输出产生影响。
#5
鼻涕龙2011-02-01 22:18
1的结果不对吧?cout<<setiosflags(ios::scientific)<<e<<endl;的结果为什么是7182818???
#6
pangding2011-02-01 23:44
是不是也和 setprecision 有关呀。C++ 的输出控制确实不是很方便,麻烦的很。

谁要是有功夫找找资料研究研究这个,整理好了发个帖。如果原创,我保证给他加精。
#7
南国利剑2011-02-02 13:13
回复 楼主 TinyGeorge
我有稍微总结了一下。一会发出来,你看看。
1