我在一个应用程序中有一个相当奇怪的错误,我已经设法缩小到这个简单的测试用例。
protected void Page_Load(object sender, EventArgs e)
{
bool isHeightExceeded = IsHeightExceeded(10.16f, 127.15f);
lit.Text = isHeightExceeded.ToString();
}
private bool IsHeightExceeded(float y, float height)
{
float nextHeight = y + height;
return (137.31f - nextHeight) < 0;
}
当我在调试模式下构建并运行它时,isHeightExceeded bool 为 False(如我所料),但是当我在发布模式下重新构建和运行时,它现在为 True。
幕后发生了什么导致了这种情况?我猜它与浮点精度有关,但不确定是什么。
任何帮助,将不胜感激。