cout 打印字符串时的精度问题

来源:互联网 发布:听歌谱曲软件 编辑:程序博客网 时间:2024/06/06 02:53

上篇博客由于对cout不太了解,所以用printf来输出。查了资料后原来是对setpresicion的误解


可能很多人和我一样一开始认为setpresicion(n) 的功能是保留n位小数,但是在查阅资料后我发现这里的n是保留n个有效数字

//比如浮点数1234.5678cout << setpresicion(6) << 1234.5678 <<endl;//那么输出的会是1234.56 而不是我想要的1234.567800cout << setiosflags(ios::fixed);cout << setprecision(6) << 1234.5678 << endl;//根据下表的内容可知,以fixed(固定小数位数)形式,n代表的小数位数,这样就可以打印我们所需要的1234.567800

【注意】要在头文件上加上 #include <iomanip>


附录:控制符表
输入输出流的控制符控制符作 用dec设置数值的基数为10hex设置数值的基数为16oct设置数值的基数为8setfill(c)设置填充字符c,c可以是字符常量或字符变量setprecision(n)设置浮点数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和 scientific(指数)形式输出时,n为小数位数setw(n)设置字段宽度为n位setiosflags( ios::fixed)设置浮点数以固定的小数位数显示setiosftags( ios::scientific)设置浮点数以科学记数法(即指数形式)显示setiosflags( ios::left)输出数据左对齐setiosflags( ios::right)输出数据右对齐setiosflags( ios::skipws)忽略前导的空格setiosflags( ios::uppercase)数据以十六进制形式输出时字母以大写表示setiosflags( ios::lowercase)数据以十六进制形式输出时宇母以小写表示setiosflags(ios::showpos)输出正数时给出“+”号


0 0
原创粉丝点击