关于EPSINON
林锐的C++文档中关于浮点变量(float、double)与零值比较时,不可将浮点变量用“= =”或“!=”与任何数字直接比较。
千万要留意,无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“= =”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
假设浮点变量的名字为x,应当将 if (x == 0.0) (隐含错误的比较)转化为 if ((x>=EPSINON) && (x<=EPSINON))
这里EPSINON是允许的误差(即精度)。