[英]Monodevelop C# script execution bug
我有一个非常简单的if语句没有按预期工作。
我的主要问题是,即时窗口以不同于代码执行的方式评估if语句:
if( FreeProductStorageVolume < product.Volume * quantity )
{
Debug.Log( FreeProductStorageVolume );
Debug.Log( product.Volume );
Debug.Log( quantity );
Debug.Log( product.Volume * quantity );
canProduce = false;
}
所有变量都是浮点数
一切都表明第824行的断点不应该被击中。
即使是立即窗口也会将if()语句计算为false。
有没有这样的事情发生在其他人身上?
这看起来像浮点精度问题。 这个表达式:
FreeProductStorageVolume - quantity * product.Volume.
似乎评估为积极的,但是,非常小的数字,例如1E-20
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.