| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5906 人关注过本帖, 1 人收藏
标题:整型与浮点型数据运算结果为什么是0?
只看楼主 加入收藏
chamlien
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-27
结帖率:100%
收藏(1)
已结贴  问题点数:5 回复次数:34 
整型与浮点型数据运算结果为什么是0?
# include <stdio.h>

int main(void)

{
    float sum = 0;
    int i = 1;
    printf("%f\n", 1/i); //此时输出的值为0,为啥?
    printf("%d\n",sum+i);  //此时输出的值为0,为啥?

    for (i=1; i<=100; i++)
    {
        // sum = sum + 1/i; //最终sum为0,为啥;
        sum = sum + (float)(1/i); // 此处虽然进行了强制类型转换,但是sum的值还是为0,为啥?
    }
    printf("%d\n", sum);
    return 0;
}
搜索更多相关主题的帖子: include 
2015-09-04 22:00
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
数据类型转换的问题,了解下上下转型吧

剑栈风樯各苦辛,别时冰雪到时春
2015-09-04 22:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你觉得那个括号起什么作用?

授人以渔,不授人以鱼。
2015-09-04 22:08
chamlien
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-27
收藏
得分:0 
回复 2楼 林月儿
因为是在跟着郝斌老师的视频学,里面没怎么讲解,遇到了也想不通,就上来问各位大神了
2015-09-04 22:15
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 4楼 chamlien
C还视屏。。。书多看看,书上讲的细

剑栈风樯各苦辛,别时冰雪到时春
2015-09-04 22:18
chamlien
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-27
收藏
得分:0 
回复 3楼 TonyDeng
(float)(1/i);首先 (1/i)得出的是整型结果,此时float不能对其强制转换;
而 1/(float)(i), 强制转换了i为float型,也即是说强制转换不能对常量而是对变量?
2015-09-04 22:19
chamlien
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-27
收藏
得分:0 
回复 5楼 林月儿
有入门书籍推荐吗?
2015-09-04 22:20
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
以下是引用chamlien在2015-9-4 22:19:24的发言:

(float)(1/i);首先 (1/i)得出的是整型结果,此时float不能对其强制转换;
而 1/(float)(i), 强制转换了i为float型,也即是说强制转换不能对常量而是对变量?



什么呀,1/i不就是0么而且是整型的,上转型也不用强转。。。

入门级的书只要不乱写没什么限制,后期可以有选择的看

剑栈风樯各苦辛,别时冰雪到时春
2015-09-04 22:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用chamlien在2015-9-4 22:19:24的发言:

(float)(1/i);首先 (1/i)得出的是整型结果,此时float不能对其强制转换;
而 1/(float)(i), 强制转换了i为float型,也即是说强制转换不能对常量而是对变量?


对什么都可以。其实更简单的写法是1.0f/i

授人以渔,不授人以鱼。
2015-09-04 22:25
计算机之祖
Rank: 2
等 级:论坛游民
帖 子:63
专家分:17
注 册:2015-9-1
收藏
得分:0 
…………
本来我还以为自己懂点的
看了这个发现还有好多不懂
2015-09-04 22:29
快速回复:整型与浮点型数据运算结果为什么是0?
数据加载中...
 
   



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

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