我在 Unity 中运行此代码(带有 .Net 4.x 的 Mono 后端)
float a = 0.42434249394294f;
float b = 1 - a;
float sum = a + b;
bool compare1 = (a + b) >= 1f;
bool compare2 = sum >= 1f;
Run Code Online (Sandbox Code Playgroud)
在调试(使用 Visual Studio)中,compare1是falsewhilecompare2是true.
这是怎么回事?为什么最后两行不同?我会认为sum == a + b。