C++中精确输出位数的方法
precision()函数和fixed合用的方法。
其中,fixed表示使用一般的方法(不是科学计数法之类的)输出浮点数。
precision是cout自定义的函数,用来设置小数输出位数的精度。
注意:如果precision函数没有配合fixed使用的话,它表示的精度就包括了小数的位数。double pai = 3.1415926535; cout.precision(5); cout<<pai<<endl; //3.1416 cout<<fixed<<pai<<endl; //3.14159
使用setprecision()格式控制符。
使用setprecision格式控制符,就要声明头文件#include<iomanip>
setprecision(n)设置精度,其中n表示输出n位。double pai = 3.1415926535; cout<<setprecision(5)<<pai<<endl; //3.1416 cout<<fixed<<setprecision(5)<<pai<<endl; //3.14159
使用setw(n)和setfill()。
setw(n)表示输出n个长度的字段。
setw()函数只对紧接着的输出产生作用,当后面紧跟着的输出字段长度小于n时,在该字段前面用空格补齐,当输出字段长度大于n时,全部整体输出。
setw()不仅可以输出数字,也可以输出字符串等类型的数据。
setw() 默认填充的内容为空格,可以 setfill() 配合使用设置其他字符填充。double pai = 3.1415; cout<<setw(8)<<pai<<endl; // 3.1415 cout<<setw(8)<<setfill('*')<<pai<<endl; //**3.1415
当然,C++兼容C语言,可以用C语言中的方法设置精度。
printf(“格式控制字符串”,输出表列)。
格式控制字符串 为 %- 0 m.n l/h 格式字符
% 为格式说明的引导符号,- 为指定左对齐输出,0 为 指定空位填0,m.n 指定输出域宽及精度,即m为输出总位数,n为小数点后位数,l/h 输出长度的修正,格式字符为指定输出的数据类型。double pai = 3.1415926535; printf("%.4lf\n",pai); printf("%8.4lf\n",pai); printf("%-8.4lf\n",pai); printf("%08.4lf\n",pai);执行结果:
本文介绍了C++中控制浮点数输出精度的方法,包括cout的precision函数配合fixed,setprecision格式控制符,以及setw()和setfill()用于设置输出字段宽度。通过实例展示了如何使用这些方法来精确控制小数位数和输出格式。

1856

被折叠的 条评论
为什么被折叠?



