setprecision函数
setprecison包含在<iomanip>函数库内,与setw不同的是,setprecision控制的是输出数值的位数,而setw控制的则是输出数值或字符串的宽度。
Sample
123456
上面数字前的空格加上数字是宽度,而如果只有数字就是位数。
set precision的用法格式如下:
cout<<setprecision(输出位数)<<变数/数字<<endl;
Sample
cout<<setprecision(5) << 3.123456 << endl;
输出的结果是3.1235,setprecision函数在取到最后一位是,会进行四舍五入,但是set precision函数控制的是整个结果的位数,而我们有时又只需要控制小数点之后的位数,因此fixed就出现了
fixed函数
格式如下:
<span style="white-space:pre"> </span>cout << fixed << setprecision(輸出位數) << 變數/數字 << endl;
Sample:
<span style="white-space:pre"> </span>cout << fixed << setprecision(2) << 3.1234 << endl;
输出结果为3.12
需要注意的是,setprecision和fixed函数一旦使用,会影响到下面的cout结果输出,因此如果想让后面的cout结果输出不受其影响,需要关闭函数。
set precision函数:
C++11之后:
<span style="white-space:pre"> </span>std::cout << std::defaultfloat;
C++11之前:
<span style="white-space:pre"> </span>std::cout.unsetf(std::ios_base::floatfield);
fixed函数:
<span style="white-space:pre"> </span>cout.unsetf( ios::fixed );