【发布时间】:2016-06-28 12:19:36
【问题描述】:
我想了解 double 的格式说明符 %g 从何时开始以指数格式打印值。
myTest.c
#include <stdio.h>
int main() {
double val = 384615.38462;
double val2 = 9999999;
printf ("val = %g\n",val);
printf ("val2 = %g\n",val2);
return 0;
}
使用 gcc 编译:
gcc version 4.5.2 (GCC)
Target: i386-pc-solaris2.11
输出:
val = 384615
val2 = 1e+07
问题:
为什么val 打印为整数,为什么val2 已转换为指数格式,即使我没有在printf 中使用%lf。
是否有从何时开始使用指数格式打印值的范围?如果是,有什么方法可以猜出值范围是多少?
提前致谢。
【问题讨论】: