| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 526 人关注过本帖
标题:[求助]关于数据类型的问题!
只看楼主 加入收藏
圆舞飞飞
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-11-28
收藏
 问题点数:0 回复次数:8 
[求助]关于数据类型的问题!
main()
{
float x=2.0,y;
if(x<0.0)y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf("%f\n",y);
}
程序的运行结果是0.500000,为什么呢?当改为int型后,结果是0.000000这又是为什么?
搜索更多相关主题的帖子: 类型 数据 
2006-12-05 15:11
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
收藏
得分:0 
你输出格式 是 %f

菜鸟~~请多指教~~
2006-12-05 15:16
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用senyee在2006-12-5 15:16:20的发言:
你输出格式 是 %f

不是这个原因,是因为y=1.0/x的时候,计算为0.5,但由于y是int型,所以发生强制类型转换为0.


倚天照海花无数,流水高山心自知。
2006-12-05 15:19
圆舞飞飞
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-11-28
收藏
得分:0 

还是不明白哦,
1.0/2.0的值怎么算?不是取整吗?那么就该是永远是0啊?
然后若将这个值赋给一个整型变量,则为0,赋给一个单精度变量,则为0.000000。不知道我想得对不对?


脚步到不了的地方,眼光可以到达,眼光到不了的地方,梦想可以到达。
2006-12-05 16:48
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 

不对,"/"只有分子与分母都是整数时才是取整,如果有一个不是的话就作运算,小数点后面根据情况取多少位小数.将所运算过的数赋给某个变量时,像上面这种情况,是赋给一个整型变量,故发生类型强制转换.


在不断的拼搏与进取中,定能创造一片天地!
2006-12-05 18:25
stator
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-11-29
收藏
得分:0 
强制转换。。   

Statorhero\'s back﹏...
2006-12-05 18:49
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

乱了
从长计议
x=1.0/2.0;
先算1.0/2.0=0.5不管x等于什么都等于0.5
当进行到x=0.5时程序再判断x的数据类型
当输出时是另一个判断过过程

2006-12-05 19:15
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
楼主 秦皇岛 的
+++++++++
2006-12-05 19:15
圆舞飞飞
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-11-28
收藏
得分:0 
现在终于明白了,多谢各位了,呵呵。。

脚步到不了的地方,眼光可以到达,眼光到不了的地方,梦想可以到达。
2006-12-05 19:23
快速回复:[求助]关于数据类型的问题!
数据加载中...
 
   



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

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