printf中的“%.7le”是什么意思?
有什么作用
fprintf(fp, "%.7le ", data);
方法?
我不知道“%.7le”是什么意思。
谢谢!
回答
% 启动转换规范。
.7 表示使用小数点后七位数的精度。
l说使用比默认值“更长”的类型。对于浮点,这意味着double(比 长float)。
e说使用指数形式:数字转换为样式 [-] d。dde ± 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参数printf被提升为double,因此带和不带的浮点转换l是相同的:它们期望一个double参数。这与 不同scanf,它需要一个指向 afloat或的指针double,并且l需要 来区分它们。