#include <iostream.h>
void main()
{
union value
{
char c;
int n;
double d;
}data;
cout<<"sizeof(data)="<<sizeof(data)<<endl;
data.c='a';
cout<<data.c<<endl;
data.n=100;
cout<<data.n<<endl;
data.d=12345.678;
cout<<data.d<<endl;
}
输出结果为sizeof(data)=8
a
100
12345.7
为什么输出data.d的结果是12345.7?
參考答案:cout 的默认精度为6,所以输出12345.7
你可以调用cout的成员函数precision(),来设置输出精度,如下:
cout.precision(10);
cout << data.d << endl;
这样就可以了