公告

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息





实数值相等的误区
acsun 发表于 2007-3-1 12:43:00
对实数进行计算时,由于实数的结构 (指数形式) 以及非常大的数值范围,经常会发生舍入误差,因此两个数值相等的情况 (所有位都相同) 几乎不会出现。
所以比较两个实数是否“相等”通常难以获得预期的结果。
因此您必须采用其它的方法。其中一种方法是采用近似值的方法。
您可以据以判断实数是否“相等”的近似值算法,比较实数值是否相等的近似值
此处所述的比较实数所用的近似值基于以下公式:

|(a -b)/(|a| + |b|)| < eps

该近似值可用语言表述如下:
当 a 和 b 之差与 a 和 b 的绝对值之和的比值的绝对值小于“eps”的值时,2 个数值“a”和“b”即被视为相等。

其中需要考虑公式的下列属性:

1. 如果实数“a”和“b”的值非常大,则即使它们相差比较大也被视为等值,此时必须根据系统的需求降低“eps”的值。
如果实数“a”和“b”的值非常小,则只有两数值相差很小时才被视为等值。

注意事项:
此处请注意在一个实数的尾数中,最多只能显示 6 个连续的十六进制数字。


阅读全文() | 回复(0) | 引用通告() | 编辑
 


发表评论:

    昵称:
    密码:
    主页:
    标题: