C++中setiosflags(ios::fixed)与setprecision( 1 )的用法

setiosflags( ios::fixed ), 头文件为 :include

在遇到要计算浮点数且希望能控制其输出、精度、小数点后的位数等时,用 setiosflags( ios::fixed ) 来控制。

1. setprecision( )

使用 setprecision(n) 可控制输出流显示浮点数的数字个数。 C++ 默认的流输出数值有效位是 6 setprecision(n) 就是输出 n 个数,会有四舍五入。

#include

#include

#include

using namespace std;

int main() {

double s=20.7843000;

cout << s << endl;

cout << “setprecision( 1 )”<< setprecision( 1 )<< s << endl;

cout << “setprecision( 2 )”<< setprecision( 2 )<< s << endl;

cout << “setprecision( 3 )”<< setprecision( 3 )<< s << endl;

cout << “setprecision( 4 )”<< setprecision( 4 )<< s << endl;

cout << “setprecision( 5 )”<< setprecision( 5 )<< s << endl;

cout << “setprecision( 6 )”<< setprecision( 6 )<< s << endl;

cout << “setprecision( 7 )”<< setprecision( 7 )<< s << endl;

cout << “setprecision( 8 )”<< setprecision( 8 )<< s << endl;

return 0;

输出:

20.7843

setprecision( 1 )2e+01

setprecision( 2 )21

setprecision( 3 )20.8

setprecision( 4 )20.78

setprecision( 5 )20.784

setprecision( 6 )20.7843

setprecision( 7 )20.7843

setprecision( 8 )20.7843

可见,小数部分末尾为 0 时,是输不出来的!

2. setiosflags(ios::fixed)

setprecision(n) setiosflags(ios::fixed) 合用,可以控制小数点右边的数字个数。

#include

#include

#include

using namespace std;

int main() {

double s=20.7843000;

cout << s << endl;

cout << setiosflags( ios::fixed );

cout << “setprecision( 1 )”<< setprecision( 1 )<< s << endl;

cout << “setprecision( 2 )”<< setprecision( 2 )<< s << endl;

cout << “setprecision( 3 )”<< setprecision( 3 )<< s << endl;

cout << “setprecision( 4 )”<< setprecision( 4 )<< s << endl;

cout << “setprecision( 5 )”<< setprecision( 5 )<< s << endl;

cout << “setprecision( 6 )”<< setprecision( 6 )<< s << endl;

cout << “setprecision( 7 )”<< setprecision( 7 )<< s << endl;

cout << “setprecision( 8 )”<< setprecision( 8 )<< s << endl;

return 0;

输出:

20.7843

setprecision( 1 )20.8

setprecision( 2 )20.78

setprecision( 3 )20.784

setprecision( 4 )20.7843

setprecision( 5 )20.78430

setprecision( 6 )20.784300

setprecision( 7 )20.7843000

setprecision( 8 )20.78430000

结果全部正确。

3. setiosflags(ios::fixed|ios::showpoint)

setprecision( ) 的精度为 0 的时候,有 showpoint ,结果就会显示小数点,没 showpoint, 就不显示小数点。

#include

#include

#include

using namespace std;

int main() {

double s=20.7843000;

cout << s << endl;

cout << setiosflags( ios::fixed);

cout << “setprecision( 0 )”<< setprecision( 0 )<< s << endl;

cout << “setprecision( 1 )”<< setprecision( 1 )<< s << endl;

cout << “setprecision( 2 )”<< setprecision( 2 )<< s << endl;

cout << “setprecision( 3 )”<< setprecision( 3 )<< s << endl;

cout << setiosflags( ios::fixed|ios::showpoint );

cout << “setprecision( 0 )”<< setprecision( 0 )<< s << endl;

cout << “setprecision( 1 )”<< setprecision( 1 )<< s << endl;

cout << “setprecision( 2 )”<< setprecision( 2 )<< s << endl;

cout << “setprecision( 3 )”<< setprecision( 3 )<< s << endl;

return 0;

输出:

20.7843

setprecision( 0 )21

setprecision( 1 )20.8

setprecision( 2 )20.78

setprecision( 3 )20.784

setprecision( 0 )21.

setprecision( 1 )20.8

setprecision( 2 )20.78

setprecision( 3 )20.784

Original: https://www.cnblogs.com/nzpdbk/p/16684373.html
Author: 风中明月
Title: C++中setiosflags(ios::fixed)与setprecision( 1 )的用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/565586/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球