15.5 有什么好的方法来验对浮点数在 ``足够接近" 情况下的等值?

浮点数的定义决定它的绝对精确度会随着其代表的值变化, 所以比较两个浮点数的最好方法 就要利用一个精确的阈值。这个阈值和作比较的浮点数值大小有关。 不要用下面的代码:
	double a, b;
	...
	if (a == b)     /* 错! */
要用类似下列的方法:
	#include <math.h>

	if (fabs(a - b)  <= epsilon * fabs(a))
epsilon 被赋为一个选定的值来控制 ``接近度"。你也要确定  a 不会为 0。

参考资料: [Knuth, Sec. 4.2.2 pp. 217-8]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)