为什么对于相等的数字,小于或等于返回false?

Ful*_*ger -1 c# debugging unity-game-engine

我有一个简单的函数,它将bool2个实体之间的距离与GravityRadius字段的比较结果返回值.

public bool IsEntityPulledByGravity(IEntity entity)
{
    return Vector3.Distance(State.Position, entity.State.Position) <= GravityRadius;
}
Run Code Online (Sandbox Code Playgroud)

有时它会按照它的设想运行,但有时会返回不正确的false值.我进入调试模式来分析它,我无法弄清楚为什么它会返回false进行比较30 <= 30.我错过了什么?

在此输入图像描述

Pau*_*ell 5

您不应该将浮点数比较为相等.

这篇MSDN文章专门描述了System.Single的情况. " 比较精度 "部分下的System.Single.Equals.