标题:不懂就问
只看楼主
xiaomengxia2008
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2008-7-23
 问题点数:0 回复次数:13 
不懂就问
为什么浮点型的数据,用整形的方式输出都是0呢?

#include<stdio.h>
void main()
{float a=3.00000;
printf("%d",a);
}

输出结果:0
搜索更多相关主题的帖子: 整形 float void main include 
2008-07-29 10:11
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
你学了IEEE的浮点规范就知道了。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-29 11:25
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
得分:0 
你開個watch看看啊

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-07-29 11:43
病书生
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-11-8
得分:0 
2进制的原因吧,int 比float小两字节,取得小数部分就输出0啦
3.00001 测试下吧
2008-07-29 14:07
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
Orz……楼上的解释好强大啊……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-29 14:16
xiaomengxia2008
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2008-7-23
得分:0 
回复 2# StarWing83 的帖子
谢谢

本人是新手……
2008-07-29 14:30
lee_2008
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-7-29
得分:0 
因为输出格式符号与float不相对应.
int %d
char %c
float %f,%g,%e
double %lf
2008-07-29 14:53
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
得分:0 
查看IEEE 754 float规则,简言之就是同是内存中的二进制数,int与float有不同的解释。用共用体看看你就明白了。

without further ado, let’s get started
2008-07-29 20:22
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
看看IEEE的Float32.24规范

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2008-07-30 12:03
妍清舞
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2007-11-12
得分:0 
大家都是高手啊,共同学习一下
2008-07-30 12:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-225661-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099897 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved