c++ - printf 中的“%.7le”是什么意思?
问题描述
做什么
fprintf(fp, "%.7le ", data);
方法?
我不知道“%.7le”是什么意思。
谢谢!
解决方案
%
启动转换规范。
.7
表示使用小数点后七位的精度。
l
表示使用比默认值“更长”的类型。对于浮点数,这意味着double
(比 长float
)。
e
说使用指数形式:数字转换为样式 [-] d。ddd e± dd。也就是说,如果合适的话,一个减号后跟一个数字,后跟一个“e”来表示指数,然后是一个有符号的数字来表示十的幂。例如,“3.45e-13”表示 3.45•10 -13。第一个数字始终在小数点前一位数和精度指定的数位后产生。因此%.2e
将 3.45、34.5 和 345. 转换为“3.45e+0”、“3.45e+1”和“3.45e+2”。
笔记
精度的含义因执行的转换而异。对于整数转换,它是打印的最小位数。对于g
转换,它是有效位数。
由于历史原因,float
参数 toprintf
被提升为double
,因此带和不带的浮点转换l
是相同的:它们需要一个double
参数。这与 不同scanf
,它需要一个指向float
or的指针double
,并且l
需要区分它们。
推荐阅读
- go - 在启用 pkg/profile 的情况下运行 go 时如何获取样本?
- sql - SQL - 试图添加替换的 XML 解析中的非法字符
- pgpool - pgpool-II 3.7.5 不缓存 PG 连接
- html - 透明的 CSS 阶梯式进度条
- azure-devops - 在 Azure DevOps 中编辑现有 sprint 的名称?
- windows - Visual Studio 2017 未检测到 Windows 驱动程序工具包安装
- c# - 构建 C# 控制台应用程序时出错:错误 CS0041 找不到模块
- c - 程序从字符串中删除特殊字符和数字,只打印英文字母
- c# - 将对象序列化为 XML,包括“xsi:schemaLocation”和属性顺序
- cassandra - 延迟复制 Cassandra NoSQL