标题:sum!=sum+term 为什么不写成term!=0
只看楼主
tujing_128
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-11-2
结帖率:85.71%
已结贴  问题点数:20 回复次数:9 
sum!=sum+term 为什么不写成term!=0
while(sum!=sum+term )

sum!=sum+term 为什么不写成term!=0
用第二个式子会较长的时间,为什么呢?
搜索更多相关主题的帖子: term sum 
2010-11-20 10:52
kidangel666
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:93
专家分:139
注 册:2010-9-15
得分:0 
你都不给出全部代码  我怎么知道你什么意思啊
2010-11-20 11:10
tujing_128
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-11-2
得分:0 
#include<stdio.h>

main()
{
    double sum=0.0,term=0.5;
    while(sum!=sum+term){
        sum+=term;
        term/=2;
    }
    printf("0.5+0.25+0.125+....=%lf",sum);
}

2010-11-20 11:49
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
得分:20 
这是一个大数加小数的问题,当一个大数加上一个小数时,大数会吃掉小数
而用term去逼近0,同级的话term的精度就高了,循环迭代次数增加

2010-11-20 12:05
tujing_128
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-11-2
得分:0 
“大数会吃掉小数”具体是什么意思啊? 能给个实例吗?
2010-11-20 12:19
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
得分:0 
怎么你这么多问题的
2010-11-20 12:27
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
得分:0 
比如计算10000+0.00001=10000,在这0.00001被忽略
而计算0+0.00001=0.00001
2010-11-20 12:32
cymtl862327
Rank: 2
等 级:论坛游民
帖 子:16
专家分:27
注 册:2010-11-5
得分:0 
路过,不知道楼主听懂4楼啥意思没,反正我是没整明白为什么不用num!=0。
2010-11-20 12:47
tujing_128
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-11-2
得分:0 
thanks
2010-11-20 15:42
西天寒星
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2010-11-12
得分:0 
这是一个大数加小数的问题,当一个大数加上一个小数时,大数会吃掉小数
而用term去逼近0,同级的话term的精度就高了,循环迭代次数增加

同级是什么意思啊?
2010-11-20 21:52



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




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

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