gpt4 book ai didi

c++ - 将当前时间 simTime.dbl() 与先前存储的 double 值进行比较并不总能给出正确的答案……为什么?

转载 作者:行者123 更新时间:2023-11-27 23:49:53 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com