我正在使用 NS-3(用 C++ 编写)来模拟网络环境。
我正在使用它的 flowmonitor 类来记录来自无线链路的性能指标。
我正在收集的一件事是当前和以前的数据包延迟或“抖动”之间的时间差异。
为此,我将一个数据包延迟的时间值(转换为双变量)减去前一个值。
IE
0.0159051 - 0.0158002 = 0.0001049
然而,过了一会儿,数学似乎表现得很奇怪,例如:
0.0159003 - 0.0158007 = 9.95972e-05
当答案显然应该是 0.0000996
为了进一步详细说明,我最初使用 diff 函数来查找差异。
template <typename T1, typename T2>
double diff(const T1& lhs, const T2& rhs)
{
std::cout << lhs << " - " << rhs << std::endl;
return lhs - rhs;
}
但是由于我发现了错误,我尝试了直接减法,但我得到了同样的错误。