作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
double installedChannels[16][3] = {{1,868.1},{1,868.3},{1,868.5},{2,863.0}};
//并且installedChannels[x][2]随着当前时间的值动态变化
if (installedChannels[i][2] <= simTime().dbl()){//如此这般。然而,有时当前的 simTime 等于存储在 installedChannels[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 情况是否实际发生)?
关于c++ - 将当前时间 simTime.dbl() 与先前存储的 double 值进行比较并不总能给出正确的答案……为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47295107/
我是一名优秀的程序员,十分优秀!