Pet*_*ter 5 c printf
是否可以控制printf的科学记法(e)打印的指数中显示的位数?
e
这段代码
#include <stdio.h> int main(void) { printf("%6.3e", 403.0); return 0; }
产生(取决于编译器/平台):
4.030e+002(VS2010)或4.030e+02(gcc 4.3.4)或甚至4.030e+2
4.030e+002
VS2010
4.030e+02
gcc 4.3.4
4.030e+2
在比较不同平台上生成的文件时,指数中不同的位数很容易混淆diff工具.
T.C*_*.C. 2
C 标准实际上指定了指数中有多少位(WG14 N1570, \xc2\xa77.21.6.1/p8; N1256, \xc2\xa77.19.6.1/p8):
\n 指数始终包含至少两位数字,并且仅包含表示指数所需的更多数字。\n
指数始终包含至少两位数字,并且仅包含表示指数所需的更多数字。
VS2010 的实现不合格。它们确实提供了一个库函数来更改打印的位数,您可以在#ifdef包装器中使用它。
#ifdef
归档时间:
11 年,9 月 前
查看次数:
2341 次
最近记录: