發現在使用setiosflags(ios::scientific)后直接用setiosflags(ios::fixed)來輸出小數形式的浮點數時,結果不正確:pi=0x1.9249p+1 。不知道原因是什麽,
#include
#include //不要忘记包含此头文件
using namespace std;
int main()
{ int a;
cout<
cin>>a;
cout<
cout<
cout<
char *pt="China"; //pt指向字符串”China”
cout<
cout<
double pi=22.0/7.0; //计算pi值
cout<
cout<
cout<
cout<
return 0;
}
輸出結果為:
input a:455
dec:455
hex:1c7
oct:707
oct:707
hex:1c7
China
*****China
pi=3.14285714e+000
pi=3.1429e+000
pi=0x1.9249p+1
请按任意键继续. . .
有網友認為“可能是因为 fixed和scientific不是互斥的, 你得把先设置的那个取消掉再设置后一个”。參見:
后將程序修改如下后,正常了:
//C++ 输出格式控制练习
//http://blog.csdn.net/qianfu111/article/details/7020174
#include
#include //不要忘记包含此头文件
using namespace std;
int main()
{
int a;
cout<
cin>>a;
cout<
hex(cout);
cout<
//cout<
cout<
cout<
cout<
char *pt="China"; //pt指向字符串”China”
cout<
cout<
double pi=22.0/7.0; //计算pi值
cout<
cout<
cout<
cout<
//如果注释掉这行,输出结果将是pi=0x1.9249p+1,而不是pi=3.1429
//大概是因为 fixed和scientific不是互斥的, 你得把先设置的那个取消掉再设置后一个
cout<
cout<
cout<
cout<
cout<
cout<
return 0;
}
輸出結果:
input a:455
dec:455
hex:1c7
oct:707
oct:707
hex:1c7
China
*****China
按指數形式輸出:
pi=3.14285714e+000
pi=3.1429e+000
按定點形式輸出:
pi=3.1429
原位輸出:
pi=3.143
请按任意键继续. . .
關於這些操作符,可參考以下解釋:
std::resetiosflags
std::setiosflags
其他資料: