有关“控制浮点数值显示”的问题?
请先看下面的程序:
//********************************************************************
//Function : 分别用浮点、定点和指数方式来表示一个实数。
//********************************************************************
#include <iostream.h>
#include <iomanip.h> //格式控制符
void main()
{
double Amount = 22.0/7;
cout << Amount << endl;
cout << setprecision(0) << Amount << endl;
cout << setprecision(1) << Amount << endl;
cout << setprecision(2) << Amount << endl;
cout << setprecision(3) << Amount << endl;
cout << setprecision(4) << Amount << endl;
cout << setiosflags(ios::fixed);
cout << setprecision(8) << Amount << endl;
cout << setiosflags(ios::scientific) << Amount << endl;
cout << setprecision(6); //重新设置成原默认设置
}
问题:
1.setprecision(n)中的n所指的小数位数是否是包含小数点在内?
例如:cout << setprecision(4) << Amount << endl;
的输出结果为3.143。
而在执行了cout << setiosflags(ios::fixed);后,setprecision(n)中的n所指的 小数位数不包含小数点在内?
例如:cout << setprecision(8) << Amount << endl;
的输出结果为3.14295718。
2.为什么cout << setiosflags(ios::scientific) << Amount << endl;的输出结果为
3.1428571而不是3.14285714e+00?