为了账号安全,请及时绑定邮箱和手机立即绑定

为什么第一个输出是0.000000(3.),而第二个输出是 97.000000,区别在哪?怎么算的?

为什么第一个输出是0.000000(3.),而第二个输出是 97.000000,区别在哪?怎么算的?

C C++
xungeer29 2017-11-22 08:09:01
#include <stdio.h> #include <stdlib.h> union Date {  int i;  char ch;  float f; }a; int main(int argc, char *argv[]) {  a.i = 97;  printf("%f\n",a.f);   int b=97;  printf("%f\n",(float)b);  return 0; }
查看完整描述

1 回答

?
慕用4063026

TA贡献195条经验 获得超115个赞

int main(int argc, char *argv[]) {
 a.i = 97;
 printf("%f\n",a.f); //a.f没赋值当然.f之后是0.000000
 int b=97;
 printf("%f\n",(float)b);//(float)b,b赋值97之后.f当然是97.000000
 return 0;
}
没懂你要知道什么


查看完整回答
反对 回复 2017-11-22
  • xungeer29
    xungeer29
    不是没有赋值,是用了共用体union
  • xungeer29
    xungeer29
    而且0.000000实际上不是0.000000,是3.******×10^-42,我就想知道这个数是怎么算的?与下面的那个强制类型转换有什么区别
  • 1 回答
  • 0 关注
  • 1464 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信