繁体   English   中英

Monodevelop C#脚本执行错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM