C++中输出精度

使用这些格式需要声明包含<iomanip>

long flags( ) const 返回当前的格式标志。 long flays(long newflag) 设置格式标志为newflag,返回旧的格式标志。 long setf(long bits) 设置指定的格式标志位,返回旧的格式标志。 long setf(long bits,long field)将field指定的格式标志位置为bits,返回旧的格式标志 long unsetf(long bits) 清除bits指定的格式标志位,返回旧的格式标志。 long fill(char c) 设置填充字符,缺省条件下是空格。 char fill( ) 返回当前填充字符。 int precision(int val) 设置精确度为val,控制输出浮点数的有效位,返回旧值。 int precision( ) 返回旧的精确度值。 int width(int val) 设置显示数据的宽度(域宽),返回旧的域宽。 int width( )只返回当前域宽,缺省宽度为0。这时插入操作能按表示数据的最小宽度显示数据 dec 十进制的输入输出 hex 十六进制的输入输出 oct 八进制的输入输出 ws 提取空白字符 flush 刷新流 resetiosflags(long) 请除特定的格式标志位 setiosflags(long) 设置特定的格式标志位 setfill(char) 设置填充字符 setprecision(int) 设置输出浮点数的精确度 setw(int) 设置域宽格式变量

C++输入输出流格式控制

1.使用控制符控制输出格式

控制符 作用
dec 设置整数的基数为10
hex 设置整数的基数为16
oct 设置 整数的基数为8
setbase(n) 设置整数的基数为n(n只能是16,10,8之一)
setfill(c) 设置填充字符c,c可以是字符常量或字符变量
setprecision(n) 设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位 数)形式和scientific(指数)形式输出时,n为小数位数。
setw(n) 设置字段宽度为n位。
setiosflags(ios::fixed) 设置浮点数以固定的小数位数显示。
setiosflags(ios::scientific) 设置浮点数以科学计数法(即指数形式)显示。
setiosflags(ios::left) 输出数据左对齐。
setiosflags(ios::right) 输出数据右对齐。
setiosflags(ios::shipws) 忽略前导的空格。
setiosflags(ios::uppercase) 在以科学计数法输出E和十六进制输出字母X时,以大写表示。
setiosflags(ios::showpos) 输出正数时,给出“+”号。
resetiosflags 终止已设置的输出格式状态,在括号中应指定内容。

2.用流对象的 成员控制输出格式

流成员函数 与之作用相同的控制符 作用
precision(n) setprecision(n) 设置实 数的精度为n位。
width(n) setw(n) 设置字段宽度为n位。
fill(c) setfill(c) 设置填充字符c。
setf( ) setiosflags( ) 设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中内容相同。
ubsetf( ) resetiosflags( ) 终止已设置的输出格式状态。

cout.width(10); cout.setf(ios::hex);

3.设置格式状态的格式标志

格式标志 作用
ios::left 输出数据在本域宽范 围内左对齐
ios::right 输出数据在本域宽范围内右对齐
ios::internal 数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符填充
ios::dec 设置整数的基数为10
ios::oct 设置整数的基数为8
ios::hex 设置整数的基数为16
ios::showbase 强制输出整数的基数(八进制以0打头,十六进制以0x打头)
ios::showpoint 强制输出浮点数的小点和尾数0
ios::uppercase 在以科学计数法输出E和十六进制输出字母X时,以大写表示
ios::showpos 输出正数时,给出“+”号。
ios::scientific 设置浮点数以科学计数法(即指数形式)显示
ios::fixed 设置浮点数以固定的小数位数显示
ios::unitbuf 每次输出后刷新所有流
ios::stdio 每次输出后清除 stdout,stderr

以小数形式,保留三位小数输出: cout<<setprecision(3)<<setiosflags(ios::fixed)<<3.1415926<<endl;

C++输出流的格式控制setw()、setfill()、setbase()、setprecision()、tellp...

inline SMANIP(long) resetiosflags(long _l) { return SMANIP(long)(__resetiosflags, _l); } inline SMANIP(int) setfill(int _m) {return SMANIP(int)(__setfill, _m); } inline SMANIP(long) setiosflags(long _l) {return SMANIP(long)(__setiosflags, _l); } inline SMANIP(int) setprecision(int _p) {return SMANIP(int)(__setprecision, _p); } inline SMANIP(int) setw(int _w) { return SMANIP(int)(__setw, _w); }

//他们都是inline 内联函数

(1)setw(int n) 预设输出宽度

如:cout<<setw(6)<<123<<endl;

输出结果为“ 123”,在123的前面会有3个空格,123右对齐。

(2)setfill(char c) 预设填充字符

如:cout<<setfill(‘#’)<<123<<endl;

输出显示结果为“###123”,123右对齐,在前面填充3个’#’ 。

(3)setbase(int n) 预设整数输出进制

如:cout<<setbase(8)<<255<<endl;

输出显示结果为377

(4)setprecision(int n) 用于控制输出流显示浮点数的精度,整数n代表显示的浮点数数字的个数。示例程序如下:

#include <iostream.h>

#include <iomanip.h> //格式控制

void main()

{

double amount = 22.0/7;

cout <<amount <<endl; //(1)

cout <<setprecision(0) <<amount <<endl //(2)

<<setprecision(1) <<amount <<endl //(3)

<<setprecision(2) <<amount <<endl //(4)

<<setprecision(3) <<amount <<endl //(5)

<<setprecision(4) <<amount <<endl; //(6)

cout <<setiosflags(ios::fixed);

cout <<setprecision(8) <<amount <<endl; //(7)

cout <<setiosflags(ios::scientific)<<amount<<endl; //(8)

cout <<setprecision(6);

}

第1行输出数值之前没有设置有效位数,所以用流的有效位数默认设置值6:第2个输出设置了有效位数0,C++最小的有效位数为1,所以作为有效位数设置为1来看待:第3~6行输出按设置的有效位数输出。 第7行输出是与setiosflags(ios::fixed)合用。所以setprecision(8)设置的是小数点后面的位数,而非全部数字个数。 第8行输出用setiosflags(ios::scientific)来表示指数表示的输出形式。其有效位数沿用上次的设置值8。在用指数形式输出时,setprecision(n)表示小数位数。 (可是这个指数形式的输出我用VC6没有运行出来)。

setw(int _w)讲解 << setw(int _w) << 输出位宽 如<< setw(7) << 1000 输出结果为 "1000 "(紧跟三个空格) 而如<< setw(3) << 1000 位宽小于原来的数字的位宽 那么按照原来的格式输出"1000" 前后无空格

setfill() 讲解 setfill(int _m) 随setw(int _w)一起使用 意思是在set(int _w)设定后的空格填充指定的字符 注意setfill里边的参数是int _m 是个整数 所以 如果我们要用空格来填充*号的时候 要使用setfill(‘*‘)[字符] 而不是setfill(*)

C++中tellp()函数与tellg()函数 tellp()函数用来获取“输出指针”的当前位置(从文件首到当前位置的字节数); tellg()函数用来获取“读入指针”的当前位置(从文件首到当前位置的字节数)。

C++中输出精度

时间: 2024-12-13 13:35:16

C++中输出精度的相关文章

小数点输出精度控制问题?.xml

pre{ line-height:1; color:#9f1d66; background-color:#d2d2d2; font-size:16px;}.sysFunc{color:#5d57ff;font-style:italic;font-weight:bold;} .selfFuc{color:#8e0ed3;} .bool{color:#008000;} .condition{color:#008000;font-weight:bold;} .key{color:#440080;} .

PHP中输出缓冲

在PHP中,当执行echo,print的时候,输出并没有立即通过tcp传给客户端浏览器显示, 而是将数据写入php buffer.php output_buffering机制,意味在tcp buffer之前,建立了一新的队列,数据必须经过该队列.当一个php buffer写满的时候,脚本进程会将php buffer中的输出数据交给系统内核交由tcp传给浏览器显示.所以,数据会依次写到这几个地方echo/pring -> php buffer -> tcp buffer -> browse

2015 蓝桥杯:4.格子中输出

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;}

在java中输出水仙花数

100~1000之间各位的立方和与这个数自己相等的数即为水仙花数 1 public static void main(String[] args) { 2 for(int i=100;i<1000;i++){ 3 int n=i; 4 int gewei=n%10; 5 n/=10; 6 int shiwei=n%10; 7 n/=10; 8 if(n*100+shiwei*10+gewei==n*n*n+shiwei*shiwei*shiwei+gewei*gewei*gewei){ 9 Sy

Maya中输出alembic文件的方法

Maya中输出alembic文件是有现成api调用的,与maya中大部分api一样,这个功能参数的传入是非常类似mel的,本质上讲都是kwargs类型的参数,所以我们传入的参数就需要整理成类似于mel的命令行形式. 首先我们来看mel中如何导出ablembic文件,mel命令格式为: AbcExport -j "-frameRange 1001 1148 -uvWrite -worldSpace -root |trk_track|trk_mesh|trk_ground -file D:/abc.

JavaScript基础 在body中输出普通的字符串 document.write

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

在当前命令行下启动tomcat并让日志在当前命令行中输出

tomcat的startup脚本会在后台启动tomcat,无法在当前命令行中输出日志,在linux下这样debug会有点不方便: 解决办法: 本来是调用startup.sh启动tomcat,改为调用catalina.sh 并传递一个参数 run ./catalina.sh run 就可以了

javascript小实例,在页面中输出当前客户端时间

时间对象(Date())比较简单,本文旨在为初学者入门使用,大牛可略过! 本文承接基础知识实例,说一下实例的要求: 在页面中输出当前客户端时间(2015年1月1日星期一10:10:10这样的格式),每过一秒中页面不刷新,但是时间自动更新(用两种定时器方法都可以实现),鼠标点击时间,如果原先运动则停止,如果停止则继续运动: 要求基本上可分为2部分:一是不刷新自动更新时间,二是点击时间停止或更新时间 好,那我们还是老规矩,一步一步来,既然是时间,那就会用到时间对象 new Date(); 1 var

java练习源码在键盘上随机输入n个数字存入list中输出其从大到小的结果!

/* * 在键盘上随机输入n个数字存入List中输出其从大到小的结果 */ public class Test01 { public static void main(String[] args) { List list1=new ArrayList(); Integer cnt=0; for(int i=0;i<args.length;i++) {list1.add(cnt.parseInt(args[i]));//String转型为Integer后存入list1中 } System.out.