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)