将当前时间 simTime.dbl() 与以前存储的双精度值进行比较并不总是给出正确的答案......为什么?
comparing current time simTime.dbl() with a previously stored double value doesn't always give the correct answer... why?
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 情况是否实际发生(?
相关文章:
- 为什么比较运算符如此快速
- 为什么:不同符号的整数比较只是偶尔发生?
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 为什么组合的上限和下限比较的计算结果总是为 true?
- 为什么 Boost multi_index只修改第一个索引的键时对第二个索引进行比较?
- 为什么我的比较运算符不比较我的点长和双精度值?
- 为什么 std::stable_sort() 的比较函数的参数必须是设置常量?
- 为什么'Hello'与CPP中的'World'进行比较时被打印出来?
- 为什么在类或结构中传递自定义比较器函数?
- 浮点数比较为什么没有相等的函数
- 为什么 std::variant 找不到运算符<() 当与比较类不在同一命名空间中时
- 为什么sub_match和basic_string比较运算符使用额外的字符串副本实现?
- 为什么Visual Studio没有对逻辑比较错误进行热身?
- 为什么地图需要实现'operator<'以及如何比较对象?
- 为什么C++容器之间存在比较运算符
- 为什么我不能将字符与"*"进行比较?
- 为什么与<运算符的向量比较会比较每个项目两次?
- C++ 字符串() 与 c 字符串的比较.为什么会这样
- 在if语句的条件部分定义变量不允许对其值进行比较.为什么?
- 字符串bool比较-为什么