一般用 精度设置函数precision(n) 来设置小数显示位数。参数n表示精度。
在c++里,浮点数有三种输出模式:
(1) 默认模式 不用precision函数时 显示六位数字
(2) 定点模式 用fixed设置
(3) 科学模式 用scientific设置
在模式(1)下,precision(n)中参数 精度n 表示 显示数字的 总位数,注:若整数部分为0,则 总位数 只是小数部分的总位数。
在模式(2)、(3)下,precision(n)中参数 精度n 表示 显示数字的 小数位数。
调用 precision(n) 可以有两种方式 :
cout.precision(n);
cout<<x;
或者
cout<<setprecision(n)<<x;
注:这两种方式都是粘性设置 即调用一次precision(n),后面的cout都会默认这个设置。
设置成 定点模式 也有两种方式:
cout<<fixed<<x;
或者
cout.setf(ios::fixed);
cout<<x;
为了输出美观,常常要求小数部分位数相同,少的部分以零补齐,就要用到参数 showpoint。
showpoint和precision(n)一同使用,以补足缺少的零。
设置时 cout.setf(cout.showpoint);
cout.precision(n);
cout<<x;
通常,既要补足小数,又要使得小数位数相同,就要将fixed 、showpoint和precision(n)一起使用。
cout.setf(cout.showpoint);
cout.precision(n);
cout.setf(ios::fixed);
cout<<x;
或者利用上面的方法进行改进 如 最后两句 = cout<<fixed<<x;
当然不要忘了头文件 #include<iomanip>
用简便表示方法时 还要命名空间 using namespace std
在C++ Primer Plus有格式设置函数 setf() 的一些参数意义,这个东西有时候喜欢忘记,所以附在文章最后了。
最近打算从头学C++,不知道能坚持几天,故第一次写,开始记录自己的一些学习过程,不过一些东西很可能有错,如果发现,请一定告之。