if 语句 float 不返回结果 Unity3d JS/US

if statement float not returning results Unity3d JS/US

我有一个 if 语句,用于检查随时间增加的浮点数(它是一个计时器)当前代码是这样

if (Day.DateTime == 1080){
    ClientsTaken = Random.Range(MinNoOfClients, MaxNoOfClients);
    GameObject.Find("Canvas").GetComponent(Brothel).Money += (ClientsTaken *(Cost * GirlMorale));
    ClientsSeen += ClientsTaken;
    Debug.Log("Clients taken = " + ClientsTaken);
} 

计时器肯定会达到 1080,但什么也没有发生。我也试过 1080f,但结果相同。

非常感谢任何帮助,谢谢。

我会把支票改为Day.DateTime >= 1080。在处理浮点数时,您可能不会直接使用整数值。

不推荐以这种方式比较浮点变量,因为 "floating point imprecision" - 浮点变量在 PC 上的内部存储方式。

相反,您可以使用 Mathf.Approximately(),像这样:

if (Mathf.Approximately(Day.DateTime, 1080.0))
{
    ...
{