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))
{
...
{
我有一个 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))
{
...
{