发行模式下的OMNeT ++ 4.6浮点精度问题

时间:2018-09-18 14:36:29

标签: omnet++

我尝试将OMNet ++项目从Linux移至Windows平台。

移至Windows后,我发现在发布模式下运行时浮点不够精确。

例如,我有一个名为GUARD_INTERVAL的时间参数。

我将其设置为0.000001,并在模拟过程中进行设置。 我看到它在发布模式下打印为0.000000999999。 但是在调试模式下显示为0.000001。

我认为这不会影响模拟结果。 但事实证明会如此。

那么,有什么方法可以使发布模式获得与调试模式相同的精度?

1 个答案:

答案 0 :(得分:0)

首先,您可以尝试从#的这一行中删除井号(-march=native -mtune=native)和configure.user部分:

#CFLAGS_RELEASE='-O3 -march=native -mtune=native -DNDEBUG=1'

所以变成这样:

CFLAGS_RELEASE='-O3 -DNDEBUG=1'

然后从头开始重建OMNeT ++(从./configure开始)。

如果这样做无济于事,那么您也可以尝试在每次刷新时将此行中的-O3降低到-O2,然后降低到-O1,甚至降低到-O0构建。