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呢?
展开
 我来答
金色潜鸟
推荐于2017-09-13 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5690万
展开全部
long 表示变量类型 long int, 不是 float, 不是 double,
输出格式 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);
512538356
2013-05-10
知道答主
回答量:44
采纳率:0%
帮助的人:23万
展开全部
浮点型和整型在内存中的存储的虽然都是0、1但是表示的意义不同。float中第一位(第一个bit)表示符号。2-9位表示指数。其余23位表示小数部分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式