fix: some logic error on float.ApproximatelyEquals
This commit is contained in:
@@ -9,14 +9,7 @@ public static class FloatExtensions
|
||||
if (a == b)
|
||||
return true;
|
||||
|
||||
const float floatNormal = (1 << 23) * float.Epsilon;
|
||||
float absA = Math.Abs(a);
|
||||
float absB = Math.Abs(b);
|
||||
float diff = Math.Abs(a - b);
|
||||
|
||||
if (a == 0.0f || b == 0.0f || diff < floatNormal)
|
||||
return diff < (epsilon * floatNormal);
|
||||
|
||||
return diff / Math.Min(absA + absB, float.MaxValue) < epsilon;
|
||||
return diff < epsilon;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user