cout.setf 函数
cout.setf(ios_base::fixed, ios_base::floatfield); // fixed-point
#include <iostream>
int main()
{
using namespace std;
cout.setf(ios_base::fixed, ios_base::floatfield); // fixed-point
float tub = 10.0 / 3.0; // good to about 6 places
double mint = 10.0 / 3.0; // good to about 15 places
const float million = 1.0e6;
cout << "tub = " << tub;
cout << ", a million tubs = " << million * tub;
cout << ",\nand ten million tubs = ";
cout << 10 * million * tub << endl;
cout << "mint = " << mint << " and a million mints = ";
cout << million * mint << endl;
// cin.get();
return 0;
}
C++中通过cout来实现格式输出,就类似于C语言中通过printf()来实现格式输出。cout.setf()的作用是通过设置格式标志来控制输出形式,其中ios_base::fixed表示:用正常的记数方法显示浮点数(与科学计数法相对应);ios_base::floatfield表示小数点后保留6位小数。
setf()函数有两个原型,分别是:
fmtflags setf(fmtflags flags);
fmtflags setf(fmtflags flags, fmtflags mask);
setf()的第一原型:
C++为标准输入和输出定义了一些格式标志, 它可以通过flags(), setf(), 和 unsetf() 三个函数来控制.
例如 cout.setf(ios_base::left); //对所有cout的输出进行左对齐调整.
还有一些常见的标志:
setf()的第二原型:
第二原型包含两个参数,第一个参数和第一原型里的参数一样,第二个参数指出要清除第一参数中的哪些位,也就是说,在第二原型中,第一个参数指出要设置哪些位,第二个参数指出要清除哪些位。
再回到C++ cout.setf(ios_base::fixed,ios_base::floatfiled)
就是说输出使用定点输出,同时输出到小数点后6位。
对于定点计数和科学计数法
精度是指小数点后几位数
显示末尾的0