ACM日记_17.5.01——控制格式的输出就只会printf了?cout也可以!

来源:互联网 发布:cp交易网络是什么意思 编辑:程序博客网 时间:2024/05/17 20:51

其实标题里说的那种情况就是我啦,碰到固定几位小数,精确到多少多少的就一脸懵逼,投奔printf了。其实cout必然也是可以的,我们需要一个叫输入输出控制符的东西。

全部的控制符参见:点击打开链接

此处只给出一般常用的(我做ACM时自己用到的)几种:

cout<<fixed<<setprecision(8)<<a;//保留八位小数cout<<setprecision(8)<<a;//共输出八位数cout<<hex<<b;//以16进制形式输出

要注意的是设置一次,后序的cout都是这样的哦,要是想变回标准形式,需要:

cout<<setprecision(6);  //恢复默认格式(精度为6)cout<<dec;//恢复十进制


原文还提到了,想使用控制符需要:

#include<iomanip>

需要注意的是,正常情况下,控制位数后会进行自动的四舍五入操作。但是,有一种特殊情况:当分数部分恰好为 0.5 时,CInt 函数通常将其四舍五入为最接近的偶数。例如,0.5 被四舍五入为 0,而 1.5 被四舍五入为 2。

但是往往,浮点数的二进制表示,和我们见到的具体数字都是不大一样的,你的19.755用二进制表示其实只是19.754999999999999,就会四舍。

0 0
原创粉丝点击