Monodevelop C#脚本执行错误

Jin*_*nov 3 c# if-statement immediate-window monodevelop unity-game-engine

我有一个非常简单的if语句没有按预期工作.

我的主要问题是,即时窗口以不同于代码执行的方式评估if语句:

   if( FreeProductStorageVolume < product.Volume * quantity )
   {
      Debug.Log( FreeProductStorageVolume );
      Debug.Log( product.Volume );
      Debug.Log( quantity );
      Debug.Log( product.Volume * quantity );
      canProduce = false;
   }
Run Code Online (Sandbox Code Playgroud)

所有变量都是浮点数

在此输入图像描述

一切都表明第824行的断点不应该被击中.

即使是立即窗口也会将if()语句计算为false.

有没有这样的事情发生在其他人身上?

Ale*_*lex 6

这看起来像浮点精度问题.这个表达式:

FreeProductStorageVolume - quantity * product.Volume.
Run Code Online (Sandbox Code Playgroud)

似乎评估为积极的,但是,非常小的数字,例如1E-20