Qt开发环境下,float/double等计算出现错误,但加上qDebug()函数后,神奇般又没问题了

/ 0评 / 0

事情是这样子的,我创建了一个函数,内部实现了一系列的计算方法,但每次运行的结果都会出现不同,有时候是0.0,有的时候是-3.1xxxe23....,让我很头疼,也找不到具体的解决办法。

但是,当我在计算结束之后,使用qDebug()将结果打印出来,神奇的结果居然正确了,说明并非我算法的问题,而是Qt的Bug或者编译器的问题。

果不其然,将Qt的编译优化关闭后,问题就消失了:

QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE -= -O3
QMAKE_CXXFLAGS_RELEASE -= -Os
QMAKE_CXXFLAGS_RELEASE -= -Ofast
QMAKE_CXXFLAGS_RELEASE -= -O
QMAKE_CXXFLAGS_RELEASE += -O0

名言语句:奋斗的目标就是为了躺平,就是为了过上不被闹钟叫醒的日子。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注