| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 835 人关注过本帖
标题:关于 0 的大小比较
只看楼主 加入收藏
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:17 
关于 0 的大小比较
比较一个数是否大于零,等于零,小于零时,在什么情况下不能直接和0比较,而是和很小的数比如1e-6,
为什么不能?
什么时候可以直接和0比较?
很是困惑,希望有人解疑。
搜索更多相关主题的帖子: 水果 
2014-08-27 11:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:20 
为什么不能? --- 能的,你被骗了,哈哈
“很小的数比如1e-6” --- 他们说的所谓“理由”,用1e-6同样解决不了。

BTW:虽然我对《高质量C++/C编程指南》嗤之以鼻,但 林锐 这个人水平是非常高的,已经达到可以为人师的地步。我猜,现在的 林锐 一定后悔写了这篇《高质量C++/C编程指南》破文章。


2014-08-27 12:09
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
收藏
得分:0 

原来如此,擦,
2014-08-27 12:21
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
#include <stdio.h>
int main(int argc, char **argv)
{
    double a = 3.2;
    double b = 3.2;
    if ((a * b - 3.2 * 3.2) == 0.0)
        printf("yes\n");
    else
        printf("no\n");
    return 0;
}

梦想拥有一台龙芯3A-4000
2014-08-27 12:24
gold615
Rank: 2
等 级:论坛游民
帖 子:54
专家分:75
注 册:2014-6-7
收藏
得分:0 
这个问题确实不太明白 坐等答案
2014-08-30 00:36
szyzln
Rank: 2
来 自:湖南张家界
等 级:论坛游民
帖 子:21
专家分:39
注 册:2013-8-31
收藏
得分:0 
四楼的举例有点迁强。我是这么认为的:
两个浮点数相减,其结果与0进行比较,判断是否相等,这个做法不是说绝对不可以,而是在某些情况下会判断不准。
四楼举的两个浮点数只是自己定义好并初始化了。如果原本相比较的两个浮点数是由公式算出来的,比如 double a=圆周率*0.0000002  double b=圆周率*0.0000001

支持Linux开源精神
2014-08-30 09:53
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
1. 测试程序而已,VS2008出yes,GCC4.7.0出no;
2. “而是在某些情况下会判断不准”,拿出证据来,否则告你诽谤,嘿嘿

梦想拥有一台龙芯3A-4000
2014-08-30 11:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用ditg在2014-8-30 11:55:37的发言:

1. 测试程序而已,VS2008出yes,GCC4.7.0出no;
2. “而是在某些情况下会判断不准”,拿出证据来,否则告你诽谤,嘿嘿


你自己说的第一点就是证据了啊~

授人以渔,不授人以鱼。
2014-08-31 17:14
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
“你猜我兜里有几个鸡蛋?你要猜对了,我这俩都是你的!”
“嗯,五个?”

俺想当然认为会是这样滴,嘿嘿……

梦想拥有一台龙芯3A-4000
2014-08-31 17:52
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用ditg在2014-8-30 11:55:37的发言:

1. 测试程序而已,VS2008出yes,GCC4.7.0出no;
2. “而是在某些情况下会判断不准”,拿出证据来,否则告你诽谤,嘿嘿
我这里GCC是yes
2014-08-31 17:57
快速回复:关于 0 的大小比较
数据加载中...
 
   



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

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