在我们的产品代码中,我们将两个双变量value1和value2相减,结果与EPSILON进行比较,其值为10e-6。如下所示
return ( fabs(value1 - value2) <= EPSILON ) ? true : false;
现在这在Windows 7(VS 2008)中运行得非常好。最近我们搬到了Windows 10(VS 2013)因为它的破坏。在我对此进行调查之后,我发现在Windows 10中对双精度操作导致与早期版本相比精度值的变化。
要解决此问题,我将EPSILON更改为10e-4。在这之后虽然这个已经修复但是其他一些代码正在破坏我使用EPSILON的地方。
我该怎么做才能解决这个问题?任何帮助将不胜感激。