C 中的 E 符号
E notation in C
我正在阅读 C 编程 - 一种现代方法,我偶然发现了关于 E-notation 的部分。我很难理解它们。
取下面的代码:
printf("%12.5e", 30.253);
结果如下:
3.02530e+01
谁能解释一下这是如何工作的?这里的数字 12 表示什么?
printf
"%12.5e"
格式指示 printf
将 double
(或 float
)参数转换为指数表示法后的 5 位字符串.
一共至少12个字符。在您的示例中,输出实际上在数字前包含一个额外的 space:3.02530e+01
以构成总共 12
个字符。为了更明显,你可以试试:
printf("|%12.5e|\n", 30.253);
并验证输出是:
| 3.02530e+01|
由 printf()
产生的指数表示法总是在 .
之前使用一个数字和一个指数(此处为 e+01
)表示要乘以的 10
的幂号码。是科学界常用的表示法:
30.12 is the same as 3.012e1 or 3.012e+01
0.0012 is the same as 1.2e-3
您可以使用此语法在 C
源代码中编写浮点常量。
"%12.5e"
表示:
(格式为%[flag][minimumFieldWidth][.precision]conversionSpecifier
)
12
: [minimumFieldWidth] 结果应占用 12 个字符(默认右对齐)
.5
:[.precision] 结果应该有 5 个小数位
e
: [conversionSpecifier] 结果将采用指数表示法
您可以尝试使用该值并亲眼看看输出如何变化。
我正在阅读 C 编程 - 一种现代方法,我偶然发现了关于 E-notation 的部分。我很难理解它们。
取下面的代码:
printf("%12.5e", 30.253);
结果如下:
3.02530e+01
谁能解释一下这是如何工作的?这里的数字 12 表示什么?
printf
"%12.5e"
格式指示 printf
将 double
(或 float
)参数转换为指数表示法后的 5 位字符串.
一共至少12个字符。在您的示例中,输出实际上在数字前包含一个额外的 space:3.02530e+01
以构成总共 12
个字符。为了更明显,你可以试试:
printf("|%12.5e|\n", 30.253);
并验证输出是:
| 3.02530e+01|
由 printf()
产生的指数表示法总是在 .
之前使用一个数字和一个指数(此处为 e+01
)表示要乘以的 10
的幂号码。是科学界常用的表示法:
30.12 is the same as 3.012e1 or 3.012e+01
0.0012 is the same as 1.2e-3
您可以使用此语法在 C
源代码中编写浮点常量。
"%12.5e"
表示:
(格式为%[flag][minimumFieldWidth][.precision]conversionSpecifier
)
12
: [minimumFieldWidth] 结果应占用 12 个字符(默认右对齐).5
:[.precision] 结果应该有 5 个小数位e
: [conversionSpecifier] 结果将采用指数表示法
您可以尝试使用该值并亲眼看看输出如何变化。