将当前时间 simTime.dbl() 与以前存储的双精度值进行比较并不总是给出正确的答案......为什么?

comparing current time simTime.dbl() with a previously stored double value doesn't always give the correct answer... why?

本文关键字:比较 为什么 答案 dbl simTime 时间 双精度 存储      更新时间:2023-10-16
double installedChannels[16][3] = {{1,868.1},{1,868.3},{

1,868.5},{2,863.0}};

/

/和已安装的频道[x][2] 随着当前时间的值而动态变化

if (installedChannels[i][2] <= simTime((.dbl((({这样做,这样那样。然而,有时当前的simTime等于存储在已安装频道[i][2]中的值然而它从未进入这个循环}

您是否检查了 OMNeT 的 simtime dbl(( 函数的注释?

/**
 * Converts simulation time (in seconds) to a double. Note that conversion to
 * and from double may lose precision. We do not provide implicit conversion
 * to double as it would conflict with other overloaded operators, and would
 * cause ambiguities during compilation.
 */

这种精度损失可能是与值进行比较可能不起作用的原因。如果要进行精确的值比较,则需要使用 simtime_t 类型(最终是 SimTime 类(。

您是否还检查了在实际可以进入循环时实际检查了您的 if 条件(if X == TRUE 情况是否实际发生(?