首页 > 解决方案 > printf 中的“%.7le”是什么意思?

问题描述

做什么

fprintf(fp, "%.7le ", data);

方法?

我不知道“%.7le”是什么意思。

谢谢!

标签: c++cprintf

解决方案


%启动转换规范。

.7表示使用小数点后七位的精度。

l表示使用比默认值“更长”的类型。对于浮点数,这意味着double(比 长float)。

e说使用指数形式:数字转换为样式 [-] dddddd。也就是说,如果合适的话,一个减号后跟一个数字,后跟一个“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,它需要一个指向floator的指针double,并且l需要区分它们。


推荐阅读