为什么我把int换成float 输出结果全是0
答案:2 悬赏:0
解决时间 2021-02-15 04:55
- 提问者网友:虛偽丶靜
- 2021-02-14 17:02
为什么我把int换成float 输出结果全是0
最佳答案
- 二级知识专家网友:情战凌云蔡小葵
- 2021-02-14 18:07
int x=1234;
printf("%f\n",x);会得到错误的结果。
应该:
printf("%.2f\n",(float)x);
printf("%f\n",x);会得到错误的结果。
应该:
printf("%.2f\n",(float)x);
全部回答
- 1楼网友:冷眼_看世界
- 2021-02-14 19:28
c/c++ 规定 输出输入格式 要与 变量类型 匹配。float 不能 用 %d 格式输出。
不管你 a=10.0, a=20.0 用 %d 输出 就是 0。没什么 道理。
用联合体可以洞悉内存字节里的内容
union u{
float a;
int b;
char c[4];
} u;
main(){
u.a = 10.0; // 用 12.0 20.0 ....
printf("c= %x %x %x %x\n",u.c[0],u.c[1],u.c[2],u.c[3]);
printf("b= 0x%x\n",u.b);
printf("b= %d\n",u.b);
printf("a=%f\n",u.a);
printf("a=%d\n",u.a); // 打印 0
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯