cout输出字符宽度可以使用width()、setw()控制,对于浮点数,有输出精度,其默认值为6,所以在程序中会出现有输出宽度但数值被截断的情况,这种情况可以通过改变流精度来实现。
#include
#include
using namespace std;
void main()
{
double values[] = {1.23,35.36,653.7,12378.24566};
for(int i=0;i<4;i++)
{
cout.width(10);
cout << values[i] <<’\n’;
}
for(int j=0;j<4;j++)
{
cout.width(10);
cout.fill(’*’);
cout << values[j] <<’\n’;
}
for(int k=0;k<4;k++)
{
cout << setprecision(10) << values[k] << endl; // 改精度为10
}
}
前面两个循环字符输出有10个字符,含空格和小数点,但流精度默认为6,所以数字只有6位。第3个循环改变精度为10,数值可以全部显示。