【发布时间】:2012-10-26 07:59:27
【问题描述】:
可能重复:
Most effective way for float and double comparison
How dangerous is it to compare floating point values?
我有const float M = 0.000001; 和float input;。我不想对它们进行平等检查。但我知道直接检查有副作用M != input。那么,我的问题是如何比较两个浮点值而没有副作用?
【问题讨论】:
-
“副作用”是什么意思?比较浮点数在该术语的通常含义中没有副作用。
-
M != input不是(没有任何)副作用。 -
你可以在这里找到一篇关于浮点比较的优秀文章:Comparing floating point numbers。基本上,根据您的要求,您可以使用 - epsilon - absolute error:当大约。值的范围是预先知道的 - epsilon - 相对误差:当大约。预先不知道值的范围 - 使用整数表示:当速度至关重要时。