C语言问题,科学计数法
我这样定义一个变量:longa=42.321e2;那你说我存入内存空间的是什么呢?也就是说数据42.321e2是什么类型的数据?42.321e4有时什么类型的数据?还有我...
我这样定义一个变量:
long a = 42.321e2;
那你说我存入内存空间的是什么呢?
也就是说 数据 42.321e2是什么类型的数据?42.321e4有时什么类型的数据?
还有我这样写:
long b = 12;
printf("%f\n",b);
那为什么我输出的是0.000000呢?为什么不是12.000000呢? 展开
long a = 42.321e2;
那你说我存入内存空间的是什么呢?
也就是说 数据 42.321e2是什么类型的数据?42.321e4有时什么类型的数据?
还有我这样写:
long b = 12;
printf("%f\n",b);
那为什么我输出的是0.000000呢?为什么不是12.000000呢? 展开
2个回答
展开全部
long 表示变量类型 long int, 不是 float, 不是 double,
输出格式 long int, 要用 %d
double a = 42.321e2;
printf("%lf",a);
就对了。
输出格式 long int, 要用 %d
double a = 42.321e2;
printf("%lf",a);
就对了。
追问
long a = 42.321e2;
那你说我存入内存空间的是什么呢?
就简单说下 字面常量42.321e2 是什么类型啊?
还有:
int k = 100;
printf(“%f\n”,k); // 我知道这个输出结果是0.000000
是把k先转换成float类型在输出,还是直接按float类型的格式读出数据输出啊?
追答
存入时已对 long int 初始化为 4232. 整型。
字面常量42.321e2 编译时是字符串。临时存入常数区为E格式浮点数double型。(由编译器定)。
printf(“%f\n”,k); 看成联合体 k=100;
union u { int k; float f;} U;
U.k = 100;
printf("%f\n",U.f);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询