游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1704|回复: 3

请教大家个问题,浮点数比较问题!!

[复制链接]

19

主题

52

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2009-7-27 14:58:00 | 显示全部楼层 |阅读模式
abc
很多书上都说浮点数的比较不能用
float f;
if(0 == f)
{
// do something
}
而是应该(EPSILON为一个很小的常数)
if(abs(f)<EPSILON)
{
// do something
}
可是我调试的时候发现,即使用
float f = 0.0;
if(0.0 == f)
{
// do something
}
条件也同样是成立的!这是为什么?

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2009-7-27 16:39:00 | 显示全部楼层

Re: 请教大家个问题,浮点数比较问题!!

没有经过运算的浮点比较是安全的。没有经过计算,就没有误差出现。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2009-7-27 21:55:00 | 显示全部楼层

Re:请教大家个问题,浮点数比较问题!!

去了解一下ieee编码就知道了,个别浮点数可以直接==,大部分最好还是epsilon

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2009-7-29 23:14:00 | 显示全部楼层

Re: 请教大家个问题,浮点数比较问题!!

浮点型这样处理,安全,它是有小数点的,不能只是简单的和0比较
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 07:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表