C++中printf()函数的用法4
在C++中,浮点数表现为小数或者以科学计数法表示的指数。printf()函数使用e/E、f/F、g/G和a/A来打印浮点数。
1 e和E参数
printf()函数的type类型是e和E参数时,将打印以科学计数法表示浮点数。例如,
float f = 1.23f;printf("%e", f);
此时的输出为1.230000e+00。默认情况下e前面尾数小数位是6位,不足6位则不零;e后面的指数是2位或者3位。当要输出的值的小数位超过6位时,则使用四舍五入的方法,只保留6位。例如
float f = 1.2345678f;printf("%e", f);
此时的输出为1.234568e+00。
E和e的用法类似,使用E时,用“E”来表示指数,例如
float f = 1.23f;printf("%E", f);
此时的输出为1.230000E+00。
2 f和F参数
printf()函数的type类型是e和E参数时,将打印以小数的方式表示浮点数。例如
float f = 1.23f;printf("%f", f);
此时的输出是1.230000。默认情况下,小数点后保留6位有效数字,如果要打印数值的小数位数超过6位,则使用四舍五入的方法保留6位有效数字。
F和F的用法类似,使用F时,输出的无穷大是大写“INF”,而使用f输出无穷大时是小写的“inf”。
3 g和G参数
printf()函数的type类型是g和G参数时,可以看做是e/E和f/F两个参数的组合,根据要打印的值在这两组参数之间进行切换。当指数值小于-4或者大于等于精度时,切换到e/E参数,否则使用f/F参数。但是需要注意的是,无论是哪种参数,如果要输出的值有效位数不足6位,printf()的输出也不会补零。
例如,
float f = 1.23f;printf("%g", f);
此时的输出是1.23。使用小数格式显示的1.23,使用科学计数法格式显示,则为1.23e+00,比科学计数法更“短”,因此此时%g切换为%f。
如下代码
float f = 0.000012345f;printf("%g", f);
此时的输出是1.2345e-05,因为此时比使用小数显示的0.000012345更“短”,%g参数切换为%e。
使用%g时,e前面的尾数默认的总长为6位(注意不是小数位,而是总长),要显示的值超过6位则使用四舍五入保留6位。
float f = 1.23456789f;printf("%g", f);
此时,%g切换为%f,并且四舍五入保留6位,其输出为1.23457。
当使用%G时,会根据相应条件切换到%E和%F。
4 a和A参数
printf()函数的type类型是a和A参数时,使用p-计数法显示数字。以p-计数法显示的数以0x开头,然后是十六进制浮点数部分,接着是p,后面是以 2为底的阶码。例如,0xb.1p2,将其转换为10进制为(11+1*(1/16))*22。所以,
double f = 5;printf("%a", f);
此时,显示的内容是0x1.4000000000000p+2,将其化为十进制的表达式为(1+4*(1/16))*22=5。
A和a的用法类似,使用A时,输出的前缀变为“0X”,“P”表示基数,用大写字母“ABCDEF”表示十六进制数。
C++中printf()函数的用法4相关推荐
- C语言printf重入,单片机中printf函数的重映射
单片机中printf函数的重映射 一.源自于:大侠有话说 1.如果你在学习单片机之前学过C语言,那么一定知道printf这个函数.它最最好用的功能 除了打印你想要的字符到屏幕上外,还能把数字进行格式化 ...
- php 格式化评论量函数,深入剖析PHP中printf()函数格式化使用
printf()函数优点在于可以格式化输出! printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少. ② ...
- C++中rand()函数的用法
C++中rand() 函数的用法 1.rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数. 2.如果你要产生0~99这100个整数中的一个随机整数, ...
- C语言中图形函数及其用法
C语言中图形函数及其用法 Turbo C 2.0具有丰富的图形功能,它提供了70多个图形函数.在这里只介绍最常用的一部分,其余的图形函数及用法可参阅相关书籍.图形函数均在头文件"graph ...
- C中printf函数的实现原理
一.printf函数的实现原理 在C/C++中,对函数参数的扫描是从后向前的.C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出来,在计算机 ...
- 浅述numpy中argsort()函数的用法
浅述python中argsort()函数的用法 由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在pyt ...
- C++中substr函数的用法
C++中substr函数的用法 #include<string> #include<iostream> using namespace std; main() { string ...
- numpy中where函数的用法
numpy中where函数的用法 numpy.where(condition,x,y)--若满足condition,输出x,否则输出y. 举例: 例1:一维数组 >>> a = np ...
- delphi中move函数的用法
delphi中move函数的用法 -------------------------------------------------------------------------------- 20 ...
最新文章
- C#中String对象转换为Font对象的方法
- Java能抵挡住JavaScript的进攻吗?
- [译]Effective Kotlin系列之探索高阶函数中inline修饰符(三)
- Hack Knowledges
- NYOJ 585 取石子(六)
- 【Linux】一步一步学Linux——write命令(236)
- 在控制台中录入一个字符串 , 打印这个字符串中的字符以及出现的次数(Python)
- informix报错244_关于informix的配置问题
- Exchange Server2010系列之十一:部署CAS+HT角色高可用性
- 单用户修改root密码--Ubuntu 16.04.3 LTS
- 计蒜客挑战难题:字符串长度
- Android 系统(119)---Android启动页黑屏及最优解决方案
- java中jscrollpane_java中JScrollPane问题
- Intel IPP密码库 IPPCP 2018 开发笔记与总结(全)
- android mvp快速创建,学习MVPArms历程之Android Studio快速创建ArmsComponent组件化项目
- 三菱FX1N与东元Teco N310变频器通讯实战程序
- Mask RCNN 算法 No Instances to display
- javacv开发详解之19:如何使用批量的多张图片制作apng动态图,再也不用担心不会制作动态图了
- 怎么用小程序挣钱?想赚钱就做这5类小程序!
- JavaScript高级编程设计(第三版)——第四章:变量作用域和内存问题