由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 比较两个两个浮点数
相关主题
问个浮点数求和的问题贡献几道面试题
Onsite面经(EE)a silly question
C的fscanf的问题 (转载)计算组合数C(m,n)
IEEE/ACM student member这些头衔有用不二分法求sqrt有什么需要注意的?
问个基础题,大家不要笑我Groupon 电面
为什么double和float不需要考虑overflow呢?在Java,怎样做floating point number 的比较?
做topcoder竞赛的同学,欢迎加入Topcodes俱乐部= 和 == 用英语怎么说
问一个G公司的题Java的hashcode和equal函数有什么用?
相关话题的讨论汇总
话题: equal话题: printf话题: 浮点数话题: float话题: 两个
进入JobHunting版参与讨论
1 (共1页)
i****1
发帖数: 445
1
float f = 1.23;
double d = 1.23;
if (f == d) printf("equal");
else printf("not equal");
这个我在vs 32位系统,64位cpu上结果为:not equal。如果把1.23换成1.25就是“
equal".
这个怎么分析?
r**h
发帖数: 1288
2
比较浮点数不能用 ==
这个是常识了吧。。。
要判断两个浮点数相等,应该用(f1-f2)
【在 i****1 的大作中提到】
: float f = 1.23;
: double d = 1.23;
: if (f == d) printf("equal");
: else printf("not equal");
: 这个我在vs 32位系统,64位cpu上结果为:not equal。如果把1.23换成1.25就是“
: equal".
: 这个怎么分析?

l***i
发帖数: 1309
3
because 1.25 = 1 + 1/2^2, and can be represented precisely in binary.
you might want to read IEEE 754 in wikipedia, or the topcoder tutorial to
learn more about floating point arithmetic. It is not hard, just less known.
f*******t
发帖数: 7549
4
判断f==d的时候会发生类型转换,因为1.23不能用有限位2进制表示,所以f和d其实都
是近似值。显然因为精度不同,f和d是不等的。
f转成double后,精度增加值不变,所以肯定不等于d。
1.25为什么相等楼上解释了
h**6
发帖数: 4160
5
如果比较两个有理数,最好转化成分数来比较。
y*******o
发帖数: 6632
6
this is the right solution
a threshold is desired

【在 r**h 的大作中提到】
: 比较浮点数不能用 ==
: 这个是常识了吧。。。
: 要判断两个浮点数相等,应该用(f1-f2)
l*****a
发帖数: 177
7
正解

【在 r**h 的大作中提到】
: 比较浮点数不能用 ==
: 这个是常识了吧。。。
: 要判断两个浮点数相等,应该用(f1-f2)
m*******p
发帖数: 141
8
楼主要被大家打击了。
赶紧多看看基础书。 加油加油。

【在 i****1 的大作中提到】
: float f = 1.23;
: double d = 1.23;
: if (f == d) printf("equal");
: else printf("not equal");
: 这个我在vs 32位系统,64位cpu上结果为:not equal。如果把1.23换成1.25就是“
: equal".
: 这个怎么分析?

1 (共1页)
进入JobHunting版参与讨论
相关主题
Java的hashcode和equal函数有什么用?问个基础题,大家不要笑我
简单的排列组合问题为什么double和float不需要考虑overflow呢?
今天topcoder上一道漂亮的题目做topcoder竞赛的同学,欢迎加入Topcodes俱乐部
元旦节来一道题目吧(update:贴答案了)问一个G公司的题
问个浮点数求和的问题贡献几道面试题
Onsite面经(EE)a silly question
C的fscanf的问题 (转载)计算组合数C(m,n)
IEEE/ACM student member这些头衔有用不二分法求sqrt有什么需要注意的?
相关话题的讨论汇总
话题: equal话题: printf话题: 浮点数话题: float话题: 两个