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
命令行选项并阅读警告。这将为我们所有人省去很多麻烦。
我正在做一个非常基本的科学记数法打印输出。
但是,在我看来它不起作用,我不明白为什么?
代码:
size_t result = 0;
printf("%e \n",result);
它打印的值如下:
1.278341e-307
做科学记数法的正确方法是什么?
如果使用浮点 printf 格式代码,如 %e
,匹配参数必须是 double
。但是你传递给它的是一个整数 (size_t
).
Printf 不知道其参数的类型,因此您必须使用正确的格式代码告诉它它们是什么。如果你撒谎,你会得到未定义的结果。
如果您使用的是 gcc 或 clang,请始终使用 -Wall
命令行选项并阅读警告。这将为我们所有人省去很多麻烦。