Monodevelop C#脚本执行bug
Monodevelop C# script execution bug
我有一个非常简单的 if 语句,它没有按预期工作。
我的主要问题是,直接 window 对 if 语句的评估与代码执行不同:
if( FreeProductStorageVolume < product.Volume * quantity )
{
Debug.Log( FreeProductStorageVolume );
Debug.Log( product.Volume );
Debug.Log( quantity );
Debug.Log( product.Volume * quantity );
canProduce = false;
}
所有变量都是浮点数
一切都表明不应命中第 824 行中的断点。
即使是立即 window 也会将 if() 语句评估为 false。
有没有其他人发生过这样的事情?
这看起来像是一个浮点精度问题。这个表达式:
FreeProductStorageVolume - quantity * product.Volume.
似乎评估为正,但是,非常小的数字,例如 1E-20
我有一个非常简单的 if 语句,它没有按预期工作。
我的主要问题是,直接 window 对 if 语句的评估与代码执行不同:
if( FreeProductStorageVolume < product.Volume * quantity )
{
Debug.Log( FreeProductStorageVolume );
Debug.Log( product.Volume );
Debug.Log( quantity );
Debug.Log( product.Volume * quantity );
canProduce = false;
}
所有变量都是浮点数
一切都表明不应命中第 824 行中的断点。
即使是立即 window 也会将 if() 语句评估为 false。
有没有其他人发生过这样的事情?
这看起来像是一个浮点精度问题。这个表达式:
FreeProductStorageVolume - quantity * product.Volume.
似乎评估为正,但是,非常小的数字,例如 1E-20