printf %e 科学记数法在 C 中给出错误的值

printf %e scientific notation giving wrong value in C

我正在做一个非常基本的科学记数法打印输出。

但是,在我看来它不起作用,我不明白为什么?

代码:

size_t result = 0;
printf("%e \n",result);

它打印的值如下:

1.278341e-307

做科学记数法的正确方法是什么?

如果使用浮点 printf 格式代码,如 %e,匹配参数必须是 double。但是你传递给它的是一个整数 (size_t).

Printf 不知道其参数的类型,因此您必须使用正确的格式代码告诉它它们是什么。如果你撒谎,你会得到未定义的结果。

如果您使用的是 gcc 或 clang,请始终使用 -Wall 命令行选项并阅读警告。这将为我们所有人省去很多麻烦。